Ana içeriğe atla

SQL(Sql Server, Oracle, MySQL) Girilen Sayı Kadar Kayıt Getirme (Select N Record)

Oracle, MySQL, Sql Sever
VeriTabanı Teknolojileri
Bu makalemizde Sql Server, MySQL ve Oracle veritabanında verilerin sorgulanması sırasında kayıt sayısının filtrelenmesi daha doğrusu kaç tane kayıt getirmesi konusunu inceleyeceğim. Bir anlamda ingilizcesi de select n record olduğu için makale başlığında da bunu belirtmek istedim.
Konuya giriş yapmadan önce belirtmem gerekiyor ki belirli sayıda veri getirme standart sql sorgusu olmadığı için her veritabanı yazılımı bu işlemi farklı şekilde uyguluyor. Bu yüzden de en çok kullanıldığını düşündüğüm 3 veri tabanı yazılımında girilen sayı kadar veri getirme konusunu anlatmaya çalışacağım.

Öncelikle SQL Server üzerindeki yapıya bakalım. Genel sorgu yapısı aşağıdaki gibidir.

SELECT TOP number|percent column_name(s)
FROM table_name 
WHERE condition;

SQL Server üzerinde sorgu yazarken TOP anahtar sözcüğünden sonra istediğimiz sayıyı veya verinin yüzdesini vererek verileri sorgulamamız mümkündür. Örnek olarak kullanıcı tablosundan kullanıcı adına göre ilk 10 kişiyi listeleyen sorgu aşağıdaki gibi olacaktır.

Örnek Sorgu:
SELECT TOP 10 
FROM USER AS U 
ORDER BY U.USERNAME

MySQL ikinci inceleyeceğim veri tabanı. MySQL ise girilen sayı kadar veri getirmek için kullandığı anahtar sözcük ise LIMIT anahtar sözcüğüdür. LIMIT anahtar kelimesi genelde sorgunun en son kısmında yer alır. MySQL sorgularında LIMIT anahtar sözcüğünden sonra girilen sayı kadar veriyi getirilir Aşağıda LIMIT anahtar sözcüğünün genel kullanım yapısı verilmiştir. 

SELECT column_name(s)
FROM table_nameWHERE condition
LIMIT number;

MySQL'de LIMIT anahtar sözcüğünün daha geniş bir kullanımı vardır. Örneğin LIMIT 100,100 gibi bir sorguda 100'cü kayıttan sonra 100 kayıt getir gibi bir anlama gelir.
Ama bu makaledeki genel amacım istediğimiz kadar kayıtı getirebilecek yapıyı anlatmak olduğum için burada konunun ayrıntılarına girmeyeceğim. Ama araştırmak istersen MySQL LIMIT anahtar sözcüğü kullanımını detaylı araştırabilirsiniz...
Son Olarak MySQL üzerinde girdiğimiz sayı kadar kayıt getiren bir örnek yapalım. Bu örneğimizde de SQL Server için verdiğim örneğin MySQL'de sorgu karşılığını yazalım.

SELECT 
FROM USER
ORDER BY USERNAME 
LIMIT 10

Son olarak Oracle veritabanındaki sorgu yapısını inceleyelim. Sql Server ve MySQL'den farklı olarak Oracle PLSQL'de istediğimiz kadar veri getirmek için where anahtar kelimesinde ROWNUM özelliğini kullanıyoruz. Bu da Oracle veritabanında verileri getirirken verinin indexine koşul koyma mantığına dayanan bir sorgulama yapısıdır.

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Oracle istediğimiz kadar veri getirme yapısı için de SQL Server için kullandığımı örneğin sorgusunu yazabiliriz.

SELECT 
FROM USER AS U 
WHERE ROWNUM <=3
ORDER BY U.USERNAME


Umarım makalem faydalı olmuştur. Konuyla alakalı öneri ve görüşleriniz varsa bana yazabilirsiniz. 

Yorumlar