SQL с нуля

Цикл для тех, кто не писал ни одного запроса: что такое база данных, SELECT и фильтры, JOIN, агрегаты, оконные функции, NULL, безопасное изменение данных и первое понимание индексов.

За каждым приложением стоит база данных, и умение задать ей вопрос напрямую — навык, который отличает специалиста от пользователя. Этот цикл — для тех, кто не написал ещё ни одного запроса: без предварительных требований, на одном сквозном примере интернет-магазина.

Восемь статей идут по порядку — каждая опирается на предыдущие:

  1. Что такое база данных и таблицы — СУБД, строки и столбцы, первичный ключ и связи.
  2. SELECT: выбрать, отфильтровать, отсортировать — WHERE, LIKE, IN, ORDER BY, LIMIT.
  3. JOIN: собрать данные из нескольких таблиц — INNER и LEFT, потерянные и задвоенные строки.
  4. Агрегаты: COUNT, GROUP BY и HAVING — ответы на вопросы «сколько» и «на какую сумму».
  5. Оконные функции — ROW_NUMBER и PARTITION BY: считать, не схлопывая строки.
  6. NULL и типы данных — где спотыкаются все, от IS NULL до часовых поясов.
  7. INSERT, UPDATE, DELETE и транзакции — как менять данные и не устроить катастрофу.
  8. Почему запрос медленный: индексы на пальцах — полный перебор, индекс-оглавление, EXPLAIN.

Цикл входит в программу «Ручное тестирование с нуля» отдельной фазой, но самодостаточен: SQL одинаково нужен тестировщику, аналитику и начинающему разработчику. Продолжение для тех, кому мало, — раздел PostgreSQL.