SQL код скопирован в буфер обмена
Этот урок знакомит с операторами `LIMIT` и `OFFSET` в SQL — важными инструментами для управления количеством строк, возвращаемых запросом, и реализации пагинации (постраничного вывода). Вы узнаете, как извлекать определенное подмножество данных, например «топ-10» записей, и как пропускать определенное количество строк для навигации по большим наборам данных. Освоение этих операторов имеет решающее значение для создания эффективных приложений, которые обрабатывают данные управляемыми «порциями» или страницами, что повышает производительность и удобство использования.
EN PT

Урок 2.6: Ограничение результатов с помощью LIMIT и OFFSET

При работе с большими таблицами часто не требуется извлекать каждую строку. Иногда нужны только первые несколько записей или необходимо реализовать «пагинацию» (показ результатов на странице 1, странице 2 и т. д.). Для этих задач используются операторы LIMIT и OFFSET.

Оператор LIMIT

Оператор LIMIT используется для указания максимального количества строк, которые должен вернуть запрос.

Синтаксис

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count;
  • count: Максимальное количество возвращаемых строк.

Примечание: Настоятельно рекомендуется использовать LIMIT вместе с ORDER BY. Без сортировки «первые X строк» могут быть любыми строками, в зависимости от того, как движок базы данных оптимизирует запрос.

Оператор OFFSET

Оператор OFFSET указывает базе данных пропустить определенное количество строк перед тем, как начать возвращать результаты.

Синтаксис

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count OFFSET skip;
  • skip: Количество строк, которые нужно пропустить перед началом возврата данных.

Пагинация: сочетание LIMIT и OFFSET

Пагинация — это процесс разделения большого набора результатов на отдельные страницы. Это наиболее распространенный вариант использования комбинации LIMIT и OFFSET.

  • Страница 1: LIMIT 10 OFFSET 0 (Строки 1–10)
  • Страница 2: LIMIT 10 OFFSET 10 (Строки 11–20)
  • Страница 3: LIMIT 10 OFFSET 20 (Строки 21–30)

Примеры

Пример 1: 5 самых длинных фильмов

Этот запрос находит 5 самых длинных фильмов в таблице film.

SELECT title, length
FROM film
ORDER BY length DESC
LIMIT 5;

Пример 2: Пропуск записей

Этот запрос пропускает первых 10 актеров (отсортированных по ID) и возвращает следующие 5.

SELECT actor_id, first_name, last_name
FROM actor
ORDER BY actor_id
LIMIT 5 OFFSET 10;

Ключевые выводы этого урока:

  • LIMIT ограничивает количество строк в результирующем наборе.
  • OFFSET пропускает указанное количество строк перед возвратом данных.
  • Сочетание LIMIT и OFFSET — стандартный способ реализации пагинации.
  • Всегда используйте ORDER BY с этими операторами для обеспечения предсказуемых результатов.

В следующем уроке мы увидим, как объединить WHERE, ORDER BY и LIMIT для создания мощных и точных запросов.