SQL с нуля
SQL с нуля на сквозном примере интернет-магазина: SELECT и фильтры, JOIN, агрегаты, оконные функции, NULL, безопасное изменение данных и знакомство с индексами.
За каждым приложением стоит база данных, и умение задать ей вопрос напрямую — навык, который отличает специалиста от пользователя. Этот цикл — для тех, кто не написал ещё ни одного запроса: без предварительных требований, на одном сквозном примере интернет-магазина.
Двенадцать статей идут по порядку, каждая опирается на предыдущие:
- Что такое база данных и таблицы — СУБД, строки и столбцы, первичный ключ и связи, как осмотреть незнакомую базу.
- SELECT: выбрать, отфильтровать, отсортировать — WHERE, LIKE, IN, ORDER BY, LIMIT, DISTINCT.
- JOIN: собрать данные из нескольких таблиц — INNER и LEFT, три таблицы и self-join, потерянные и задвоенные строки.
- Агрегаты: COUNT, GROUP BY и HAVING — ответы на вопросы «сколько» и «на какую сумму», деньги в numeric.
- NULL и типы данных — где спотыкаются все, от IS NULL до NULLS LAST.
- Подзапросы — IN, EXISTS, производные таблицы, WITH, UNION и EXCEPT.
- Оконные функции — ROW_NUMBER и PARTITION BY: считать, не схлопывая строки.
- Даты и время — момент и дата, отрезки дней, группировка по дням.
- Строки — склейка, LIKE и ILIKE, регулярные выражения, string_agg, CASE.
- INSERT, UPDATE, DELETE и транзакции — как менять данные и не устроить катастрофу, гонка за остатком.
- Схема базы, ключи и представления — DDL, суррогатные ключи, представления, ACID.
- Почему запрос медленный: индексы на пальцах — полный перебор, составной индекс, EXPLAIN ANALYZE, триграммы.
Цикл входит в программу «QA-инженер» отдельной фазой, но самодостаточен: SQL одинаково нужен тестировщику, аналитику и начинающему разработчику. Продолжение для тех, кому мало, — раздел PostgreSQL.
Нужна карта всех тем по SQL одной страницей? Собрали карту тем по SQL с разбором каждой.