Базовые конструкции SQL¶
Пример запроса:
SELECT name, age
FROM users
WHERE age >= 18
ORDER BY age DESC
LIMIT 10;
SELECT — выбрать столбцы¶
Команда SELECT используется для выборки данных из таблицы. С помощью SELECT указывается, какие столбцы данных нужно извлечь. Например:
SELECT name, age
FROM — из какой таблицы¶
Ключевое слово FROM указывает, из какой таблицы нужно извлечь данные. Это обязательная часть запроса.
FROM users
WHERE — фильтрация данных¶
WHERE позволяет задавать условия, которые должны быть выполнены для отбора данных. Например, чтобы выбрать только тех пользователей, возраст которых 18 лет и больше:
WHERE age >= 18
ORDER BY — сортировка¶
ORDER BY используется для сортировки результатов. Он позволяет отсортировать данные по одному или нескольким столбцам. При этом можно указать направление сортировки: по возрастанию (ASC) или по убыванию (DESC).
ORDER BY age DESC
LIMIT — ограничение количества строк¶
LIMIT задаёт максимальное количество строк, которые будут возвращены в результате запроса. Это полезно, если нужно получить только часть данных (например, первые 10 записей).
LIMIT 10
Этот запрос ограничивает количество результатов 10 строками.
DISTINCT — убрать дубликаты¶
Если необходимо исключить повторяющиеся значения, можно использовать DISTINCT. Например:
SELECT DISTINCT name
FROM users
Этот запрос вернёт уникальные значения в столбце name (без дублирования).
IN, BETWEEN, LIKE, IS NULL — фильтрация по условиям¶
Эти операторы позволяют задавать различные условия для фильтрации данных.
IN¶
Позволяет указать несколько значений, одно из которых должно соответствовать столбцу. Например:
WHERE age IN (18, 20, 25)
BETWEEN¶
Используется для фильтрации данных в диапазоне значений. Например:
WHERE age BETWEEN 18 AND 30
LIKE¶
Используется для поиска значений, которые соответствуют паттерну. Например:
WHERE name LIKE 'A%'
IS NULL¶
Используется для поиска записей, где столбец имеет значение NULL (отсутствие значения). Например:
WHERE age IS NULL
AS — задать псевдоним столбцу¶
Команда AS позволяет задать псевдоним (псевдоним столбца или таблицы) для более удобного обращения. Например:
SELECT name AS user_name
FROM users
В этом запросе столбец name будет представлен как user_name в результирующем наборе данных.
Это особенно полезно при работе с вычисляемыми столбцами или длинными названиями.
Пример подробного SQL-запроса¶
SELECT DISTINCT name AS user_name, age
FROM users
WHERE age BETWEEN 18 AND 30
AND name LIKE 'A%'
ORDER BY age DESC
LIMIT 10;
Этот запрос выбирает уникальные имена и возраст пользователей, чьи имена начинаются с буквы “A” и чей возраст находится в диапазоне от 18 до 30 лет. Результаты сортируются по возрасту в порядке убывания, и ограничиваются первыми 10 записями.
⸻
Порядок написания запроса¶
SELECT <столбцы или выражения> FROM <таблицы или подзапросы> JOIN <таблицы> ON <условия> -- если есть соединения WHERE <условие фильтрации строк> GROUP BY <группировка> HAVING <условие для агрегированных данных> ORDER BY <сортировка> LIMIT <ограничение на количество строк>
Порядок выполнения (логический)¶
- FROM / JOIN – выбираются таблицы, подготавливаются данные для работы.
- WHERE – фильтрация строк (но ещё без агрегатных функций).
- GROUP BY – группировка строк.
- HAVING – фильтрация уже сгруппированных данных.
- SELECT – выбираются нужные столбцы и вычисляются выражения.
- DISTINCT – убираются дубликаты (если есть).
- ORDER BY – сортировка результата.
- LIMIT / OFFSET – ограничение количества возвращаемых строк.