Зарегистрируйтесь, чтобы продолжить обучение

Лимит (LIMIT) Основы реляционных баз данных

Типичные таблицы в веб-проектах содержат огромное число данных, поэтому их никогда не показывают на страницах сразу все. Обычно выводится лишь небольшая часть, например, 50 строк. Чтобы ограничить выборку, используется LIMIT. В этом уроке разберем, как работать с таким запросом.

LIMIT

Как ограничивать выборку таблицы

Представим, что нам нужно извлечь 10 записей. Для этого выполним такой запрос:

SELECT * FROM users LIMIT 10;

Из-за неопределенности порядка сортировки по умолчанию неизвестно, какие это будут записи. Для гарантии обязательно определять сортировку. LIMIT без сортировки практически никогда не используется. Поэтому нужно задать ее:

SELECT * FROM users ORDER BY id LIMIT 10;

Как показать все данные по выборкам

Допустим, пользователь хочет посмотреть следующие 10. Это реализуется через пагинацию — механизм, который позволяет перемещаться по страницам. Чтобы реализовать его, одного LIMIT недостаточно. Еще понадобится смещение OFFSET:

SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 10;

Этот запрос отсортирует пользователей, пропустит первые 10 за счет части OFFSET 10 и возьмет 10 записей. Если менять OFFSET, можно обойти все данные в таблице:

-- выбрать записи с 21 по 30
SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20;

-- выбрать записи с 31 по 40
SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 30;

Выводы

В этом уроке мы изучили функцию LIMIT, которая позволяет выводить лишь небольшую часть данных и ограничивать выборку.

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


Дополнительные материалы

  1. LIMIT

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»