Как ограничить выборку
Эта первая сложная тема курса: вы изучите много новых методов и инструментов, которые позволят ограничить выгружаемые данные. Чтобы было проще всё запомнить, мы объединили разные операторы и функции в группы в зависимости от их назначения.
Вы уже умеете писать простые запросы и выгружать из таблицы всю информацию. Если таблица небольшая, выгрузка обычно не занимает много времени. Но чаще всего в таблице очень много данных и на выгрузку всей информации может уйти целый час или даже больше.
Выгрузить данные быстрее можно из базы, которая находится в облачном хранилище. Этот способ хранения называют DBaaS (от англ. database as a service, «база данных как сервис»). Но с такими базами возникает другая проблема: выгрузка данных из «облачных» баз часто платная, и цена зависит от объёма выгрузки. Значит, выгружать всю информацию просто невыгодно. Пора учиться получать срез данных.
Ограничить объём выгрузки можно сразу в запросе. Например, можно запросить не все поля, а указать конкретные ключевые слова после оператора
SELECT:SQL
Напомним, что полями в реляционных базах данных называют столбцы. И не забудьте про стиль: ключевые слова нужно писать с новой строки. Порядок полей тоже важен, ведь в том же порядке поля будут выгружены из таблицы.
Оператор LIMIT
Ограничить количество строк тоже можно. Для такой задачи в SQL используют оператор
LIMIT. Оператор ставят в конце запроса и после него указывают количество записей или строк, которые нужно выгрузить. Такой запрос отобразит первые десять записей из перечисленных полей:
SQL
Оператор OFFSET
Оператор
LIMIT выгружает первые записи таблицы. А что если нужно вывести записи не с начала, а с середины таблицы? Тогда к оператору LIMIT добавляют оператор OFFSET. Он позволяет пропустить определённое число записей от начала таблицы.SQL
Такой запрос выведет записи с 6 по 15. Запрос ниже выведет записи с 1 по 10:
SQL
OFFSET — оператор самостоятельный. Если нужно отобразить записи всей таблицы, начиная с определённой, то нужно указать только оператор OFFSET без оператора LIMIT. Например, если нужно отобразить всю таблицу, начиная с шестой записи, то код будет выглядеть так:SQL