Предложения limit и offset в SQL позволяют ограничить количество записей, возвращаемых оператором select.
В этой статье мы рассмотрим использование предложений limit и offset в SQL.
Синтаксис
Синтаксис для предложений limit и offset показан ниже:
SELECT col1 , col2 , … colN FROM TABLE_NAME ORDER BY column_name LIMIT COUNT OFFSET offset;
Предельное значение будет определять количество строк/записей, возвращаемых запросом.
Значение смещения позволяет пропустить определенные строки, прежде чем начать выборку соответствующих записей.
Пример
Предположим, у вас есть пример таблицы и данных, как показано в приведенном ниже запросе:
CREATE TABLE employees ( id serial PRIMARY KEY, full_name VARCHAR(255), email VARCHAR(255), department VARCHAR(100), start_date DATE, active bool, category VARCHAR(50) ); INSERT INTO employees (full_name, email, department, start_date, active, category) VALUES ('Andrey Ex', 'andrey@example.com', 'Game Development', '2020-01-22', TRUE, 'DEV-G1'), ('Maria Ter', 'mariater@am.com', 'Game Development', '2021-06-14', FALSE, 'DEV-G1'), ..... ('Alex Og', 'alexog@exampl.net', 'DevOps Engineer', '2021-02-26', FALSE, 'DEV-OPS1');
Вы можете просмотреть все записи в таблице, используя запрос выбора, как показано ниже:
SELECT * FROM employees;
Эта команда должна вернуть все строки.
Предположим, нам нужны первые 3 записи. Для этого мы можем использовать предложение LIMIT как:
SELECT * FROM employees LIMIT 3;
Приведенный выше запрос должен возвращать первые три строки, начиная с 1.
Что делать, если вы хотите получить следующие три элемента? Мы можем использовать предложение limit и offset, как показано ниже:
SELECT * FROM employees LIMIT 3 offset 3;
Приведенный выше запрос вернет три элемента, начиная с четвертой строки (включительно). Если у вас есть идентификатор для ваших строк, вывод должен быть описательным.
Вывод
Как показано в этой статье, предложения limit и offset — это функция безопасности, которая не позволяет вам получить тысячи, если не миллионы записей в одном запросе. Поэтому хорошо использовать эту функцию для простой разбивки на страницы и красивого вывода.