- Сначала нужно определить, откуда брать данные, поэтому первым идёт оператор FROM. На этом же этапе объединяются таблицы операторами JOIN и назначаются для них псевдонимы. Важно учесть, что присоединение предшествует фильтрации и группировке. Это означает, что большие таблицы будут объединяться очень долго.
- Данные выбраны, и наступает очередь оператора WHERE. Остаются только те данные, которые соответствуют условиям.
- После срезов данные группируются оператором GROUP BY и подсчитываются агрегирующими функциями. Обратите внимание, что WHERE предшествует GROUP BY, и это не позволяет сделать срез по группам. В момент получения среза данные ещё не сгруппировались.
- Теперь наступает очередь HAVING — отбираются уже сгруппированные данные.
- Только на этом этапе происходит выбор данных с помощью оператора SELECT, а полям в итоговой таблице присваиваются псевдонимы. По этой причине псевдонимы нельзя использовать после WHERE и HAVING — они ещё не назначены. В некоторых СУБД псевдонимы нельзя использовать и после GROUP BY. В PostgreSQL есть расширение, которое устраняет эту проблему.
- После SELECT срабатывает ключевое слово DISTINCT, которое отбирает уникальные значения. Нужные данные отобраны, и происходит сортировка.
- Оператор ORDER BY действует предпоследним.
- Замыкающим будет оператор LIMIT.
This blog is not a documetation or an article project, its just expanded bookmarks with timeline
пятница, 29 марта 2024 г.
SQL порядок выполнения операторов
Операторы действуют в таком порядке:
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий