MySQL Örneklerle LİMİT & OFSET
LIMIT anahtar kelimesi nedir?
Limit anahtar sözcüğü, bir sorgu sonucunda döndürülen satır sayısını sınırlamak için kullanılır.
SELECT, UPDATE OR DELETE komutları LIMIT anahtar kelime söz dizimi ile birlikte kullanılabilir.
LIMIT anahtar sözcüğünün sözdizimi aşağıdaki gibidir
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
İŞTE
- “SELECT {alan ad(lar)ı | *} TabloAdından(lar)ından” olduğunu SELECT ifadesi sorgumuzda döndürmek istediğimiz alanları içerir.
- “[NEREDE koşulu]” isteğe bağlıdır ancak sağlandığında sonuç kümesinde bir filtre belirtmek için kullanılabilir.
- “SINIR N” anahtar kelimedir ve N 0'dan başlayan herhangi bir sayıdır; sınır olarak 0 konulması sorguda herhangi bir kayıt döndürmez. 5 gibi bir sayı koymak beş kayıt döndürecektir. Belirtilen tablodaki kayıtlar N'den küçükse sorgulanan tablodaki tüm kayıtlar sonuç kümesinde döndürülür.
Bir örneğe bakalım –
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
Yukarıdaki ekran görüntüsünden de görebileceğiniz gibi yalnızca iki üye geri döndürüldü.
Yalnızca veritabanından on (10) üyenin listesini alma
Diyelim ki Myflix veritabanından ilk 10 kayıtlı üyenin listesini almak istiyoruz. Bunu başarmak için aşağıdaki betiği kullanacağız.
SELECT * FROM members LIMIT 10;
Yukarıdaki betiği çalıştırmak bize aşağıda gösterilen sonuçları verir
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
LIMIT yan tümcesindeki N, tablomuzdaki toplam kayıt sayısından daha büyük olduğundan sorgumuzda yalnızca 9 üyenin döndürüldüğünü unutmayın.
Yukarıdaki betiği aşağıdaki gibi yeniden yazın
SELECT * FROM members LIMIT 9;
Sorgu sonuç kümemizde yalnızca 9 satır döndürür.
LIMIT sorgusunda OFF SET'i kullanma
The TELAFİ ETMEK değer ayrıca çoğunlukla LIMIT anahtar sözcüğüyle birlikte kullanılır. OFF SET değeri veri alımından hangi satırın başlayacağını belirtmemize olanak sağlar
Diyelim ki satırların ortasından başlayarak sınırlı sayıda üye almak istiyoruz, bunu gerçekleştirmek için LIMIT anahtar sözcüğünü ofset değeriyle birlikte kullanabiliriz. Aşağıda gösterilen komut dosyası, verileri ikinci satırdan başlayarak alır ve sonuçları 2 ile sınırlandırır.
SELECT * FROM `members` LIMIT 1, 2;
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb'ye karşı çalıştırmak aşağıdaki sonuçları veriyor.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned
LIMIT anahtar sözcüğünü ne zaman kullanmalıyız?
Diyelim ki myflixdb üzerinde çalışan bir uygulama geliştiriyoruz. Sistem tasarımcımız, yavaş yükleme sürelerini engellemek için bir sayfada görüntülenen kayıt sayısını sayfa başına 20 kayıtla sınırlamamızı istedi. Bu tür kullanıcı gereksinimlerini karşılayan sistemi uygulamaya nasıl geçeceğiz? LIMIT anahtar sözcüğü bu gibi durumlarda kullanışlıdır. Bir sorgudan döndürülen sonuçları sayfa başına yalnızca 20 kayıtla sınırlandırabiliriz.
ÖZET
- LIMIT anahtar sözcüğü, bir sonuç kümesinden döndürülen satır sayısını sınırlamak için kullanılır.
- LIMIT sayısı sıfırdan (0) yukarıya doğru herhangi bir sayı olabilir. Limit olarak sıfır (0) belirtildiğinde sonuç kümesinden hiçbir satır döndürülmez.
- OFF SET değeri veri alımından hangi satırın başlayacağını belirtmemize olanak sağlar
- SELECT, UPDATE OR DELETE komutları LIMIT anahtar kelime söz dizimi ile birlikte kullanılabilir.