SQL (Structured Query Language) — язык для работы с реляционными базами данных. Он нужен не только разработчикам, но и аналитикам, менеджерам продукта, маркетологам — всем, кто работает с данными.
Базовый SELECT
-- basic_select.sql
-- Все столбцы из таблицы SELECT * FROM users; -- Конкретные столбцы с псевдонимами SELECT first_name AS "Имя", last_name AS "Фамилия", age FROM users WHERE age >= 18 ORDER BY last_name ASC LIMIT 10;
Фильтрация с WHERE
-- filtering.sql
-- Операторы сравнения и логика SELECT * FROM products WHERE price BETWEEN 100 AND 500 AND category IN ('Electronics', 'Books') AND name LIKE '%Pro%'; -- Проверка NULL SELECT * FROM users WHERE email IS NOT NULL;
// Порядок выполнения SQL-запроса
SQL выполняется не в том порядке, в котором написан: FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Понимание этого помогает избежать ошибок при использовании алиасов и агрегатных функций.
JOIN: соединение таблиц
-- joins.sql
-- INNER JOIN: только совпадающие записи SELECT o.order_id, u.first_name, o.total_amount FROM orders o INNER JOIN users u ON o.user_id = u.id; -- LEFT JOIN: все из левой + совпадения из правой SELECT u.first_name, COUNT(o.id) AS orders_count FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.id;
GROUP BY и агрегатные функции
-- aggregation.sql
SELECT category, COUNT(*) AS product_count, AVG(price) AS avg_price, MAX(price) AS max_price, SUM(price) AS total FROM products GROUP BY category HAVING COUNT(*) > 5 -- фильтр после группировки ORDER BY avg_price DESC;