Какво представлява ключовата дума LIMIT?
Ключовата дума limit се използва за ограничаване на броя редове, върнати в резултат на заявка.
Може да се използва заедно с командите SELECT, UPDATE OR DELETE LIMIT синтаксис на ключови думи
Синтаксисът за ключовата дума LIMIT е както следва
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ТУК
- "SELECT {име на поле | |}} ОТ имена на таблица" е операторът SELECT, съдържащ полетата, които бихме искали да върнем в нашата заявка.
- „[WHERE условие]“ не е задължително, но когато е предоставено, може да се използва за задаване на филтър в набора от резултати.
- „LIMIT N“ е ключовата дума, а N е произволно число, започващо от 0, като поставя 0, тъй като ограничението не връща никакви записи в заявката. Поставянето на число, да речем 5, ще върне пет записа. Ако записите в посочената таблица са по-малки от N, тогава всички записи от заявената таблица се връщат в набора от резултати.
Нека разгледаме един пример -
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Както можете да видите от горната екранна снимка, само двама членове са върнати.
Получаване на списък с десет (10) членове само от базата данни
Да предположим, че искаме да получим списък с първите 10 регистрирани членове от базата данни Myflix. Бихме използвали следния скрипт, за да постигнем това.
SELECT * FROM members LIMIT 10;
Изпълнението на горния скрипт ни дава резултатите, показани по-долу
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | 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 |
Забележете, че в нашата заявка са върнати само 9 членове, тъй като N в клаузата LIMIT е по-голям от броя на общите записи в нашата таблица.
Пренаписване на горния скрипт, както следва
SELECT * FROM members LIMIT 9;
Връща само 9 реда в нашия набор от резултати от заявки.
Използване на OFF SET в заявката LIMIT
Стойността OFF SET също се използва най-често заедно с ключовата дума LIMIT. Стойността OFF SET ни позволява да посочим кой ред да започне от извличането на данни
Да предположим, че искаме да получим ограничен брой членове, започвайки от средата на редовете, можем да използваме ключовата дума LIMIT заедно със стойността на отместването, за да постигнем това. Показаният по-долу скрипт получава данни, започващи втория ред, и ограничава резултатите до 2.
SELECT * FROM `members` LIMIT 1, 2;
Изпълнението на горния скрипт в MySQL workbench срещу myflixdb дава следните резултати.
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 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Кога трябва да използваме ключовата дума LIMIT?
Да предположим, че разработваме приложението, което работи върху myflixdb. Нашият системен дизайнер ни помоли да ограничим броя на записите, показвани на страница, за да кажем 20 записа на страница, за да противодействаме на бавното време на зареждане. Как да започнем да прилагаме системата, която отговаря на такива изисквания на потребителя? Ключовата дума LIMIT е полезна в такива ситуации. Бихме могли да ограничим резултатите, върнати от заявка, до 20 записа само на страница.
Обобщение
- Ключовата дума LIMIT се използва за ограничаване на броя редове, върнати от набор от резултати.
- БРОЙНОТО число може да бъде всяко число от нула (0) нагоре. Когато нула (0) е посочена като ограничение, не се връщат редове от резултата.
- Стойността OFF SET ни позволява да посочим кой ред да започне от извличането на данни
- Може да се използва заедно с командите SELECT, UPDATE OR DELETE LIMIT синтаксис на ключови думи