К счастью, в SQL у нас есть доступ к предложению LIMIT, которое позволяет нам контролировать количество строк, возвращаемых в заданном наборе результатов. Эта функция очень полезна, когда мы имеем дело с большим набором данных и на самом деле нам нужна не вся строка, а ее подмножество. Это может быть либо получение макета данных, либо представление.
В этом руководстве мы узнаем, как использовать и работать с предложением LIMIT в базах данных SQL, чтобы указать количество строк, которые мы хотим получить из базы данных.
Требования:
Прежде чем мы углубимся в работу и использование предложения LIMIT в SQL, давайте обсудим некоторые основные требования для этого руководства.
Чтобы следовать этому посту, вам потребуется следующее:
- MySQL 8.0 и выше работает с MySQL 5.
- Доступ к образцу базы данных Sakila
- Разрешения на запрос строк из целевой базы данных (доступ на чтение)
При соблюдении данных требований мы можем продолжить работу с этим руководством.
ПРЕДЕЛ SQL
В SQL предложение LIMIT позволяет нам ограничить количество строк, возвращаемых по заданному SQL-запросу. Например, в операторе выбора вместо возврата всех строк из таблицы, которая может содержать более 1000 записей, мы можем выбрать просмотр только первых 10 строк.
Ниже показан основной синтаксис предложения LIMIT в SQL:
ВЫБЕРИТЕ столбец1, столбец2, ...
ОТ имени_таблицы
ОГРАНИТЬ число_строк;
В этом примере мы используем предложение LIMIT в сочетании с оператором SELECT.
Согласно данному синтаксису, «tbl_name» представляет имя таблицы, из которой мы хотим получить данные.
«num_rows» позволяет нам указать максимальное количество строк, возвращаемых в наборе результатов.
Пример 1: Ограничьте количество строк
Самая распространенная и фундаментальная роль предложения LIMIT — установить максимальное количество строк, включаемых в результирующий набор.
Предположим, мы хотим использовать таблицу «film» из образца базы данных Sakila. Однако, поскольку мы не хотим получать все связанные строки, мы можем выбрать первые 10 строк, как показано в следующем примере:
ВЫБРАТЬ * ИЗ фильмаПРЕДЕЛ 10 ;
После запуска данного запроса мы должны получить следующий результат:
В этом примере мы используем предложение LIMIT, чтобы ограничить результирующий набор 10 строками. Это извлекает первые 10 строк результата.
Пример 2: Использование значения OFFSET
В некоторых случаях нам может потребоваться пропустить или опустить определенное количество строк. Например, предположим, что мы хотим получить только пять элементов, но хотим начать с позиции 20. Мы можем использовать параметр OFFSET, который позволяет нам указать предложению LIMIT, с какой позиции мы хотим начать.
Это особенно полезно, когда вам нужно реализовать нумерацию страниц в большом наборе данных, как показано в следующем примере:
ВЫБЕРИТЕ идентификатор фильма, название, год выпуска, продолжительность ИЗ фильмаПРЕДЕЛ 10 КОМПЕНСИРОВАТЬ двадцать ;;
Это должно вернуть 10 строк, начиная с позиции 20, следующим образом:
Как видно из приведенного результата, стартовый «film_id» начинается с позиции 21 и продолжается до позиции 30.
Пример 3: Использование предложения Order BY
Другое распространенное использование предложения LIMIT — в сочетании с предложением ORDER BY. Это позволяет нам получить определенное количество строк, основанных на определенном порядке. Сюда может входить базовая сортировка (по возрастанию или убыванию) и т. д.
Например, предположим, что мы хотим получить 10 самых длинных фильмов из таблицы «фильм». Мы можем использовать предложение ORDER BY для сортировки значений по длине, а затем ограничить первые 10 строк.
Пример следующий:
ВЫБЕРИТЕ f.film_id, f.title, f.lengthИЗ фильма Ф
ЗАКАЗ ПО длине DESC
ПРЕДЕЛ 10 ;
В этом случае мы используем предложение ORDER BY, чтобы упорядочить строки в порядке убывания (от самой высокой к самой низкой), а затем извлекаем первые 10 строк с помощью предложения LIMIT.
Набор результатов выглядит следующим образом:
Вот оно!
Заключение
В этом посте мы изучили основы и расширенные возможности работы с предложением LIMIT в базах данных SQL.