Из каких ключевых частей состоит SQL-запрос SELECT?

«Из каких ключевых частей состоит SQL-запрос SELECT?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SQL-запрос SELECT состоит из нескольких необязательных предложений, которые выполняются в строгом порядке:

  1. SELECT — определяет столбцы или вычисляемые выражения для вывода.
  2. FROM — указывает таблицу или таблицы, из которых извлекаются данные.
  3. WHERE — фильтрует строки перед группировкой.
  4. GROUP BY — группирует строки по значениям указанных столбцов.
  5. HAVING — фильтрует группы после группировки (аналог WHERE для групп).
  6. ORDER BY — сортирует результирующий набор.
  7. LIMIT / OFFSET (или FETCH FIRST / OFFSET в стандарте SQL) — ограничивает количество возвращаемых строк.

Порядок выполнения (логический): FROMWHEREGROUP BYHAVINGSELECTORDER BYLIMIT.

Пример запроса, использующего все части:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE hire_date > '2020-01-01'
GROUP BY department
HAVING COUNT(*) > 5
ORDER BY employee_count DESC
LIMIT 10;