Глиф Учебники

SQL

Программирование · 10 уроков · 18 справок · итоговый тест

SQL — язык запросов к базам данных. Курс с нуля на SQLite с пометками для MySQL и PostgreSQL: таблицы, выборка, группировка, JOIN, ключи, индексы и транзакции.

SQL (Structured Query Language — язык структурированных запросов) — язык, на котором программы и люди разговаривают с базами данных: создают таблицы, добавляют строки, ищут, считают, меняют и удаляют данные. Читается «эс-кью-эль», часто говорят и «сиквел».

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

Какие бывают СУБД

Базу данных хранит и обслуживает программа — СУБД (система управления базами данных). Самые распространённые бесплатные:

Есть и платные: Microsoft SQL Server, Oracle. Основа языка у всех одна — стандарт SQL, но у каждой СУБД свой диалект: где-то другое имя функции, где-то своя команда. Курс написан на SQLite, а там, где MySQL и PostgreSQL ведут себя иначе, это отмечено.

Что нужно для начала

Как пройти курс

Уроки идут по порядку: от первой таблицы до связей, индексов и транзакций. Во всех уроках одна учебная база небольшого магазина — товары, покупатели и заказы, поэтому каждый следующий урок опирается на предыдущий. Набирайте запросы сами и сравнивайте ответ с таблицей в уроке: так SQL запоминается быстрее, чем при чтении.

После каждого урока — несколько вопросов для проверки, в конце — итоговый тест. В справочнике — короткие ответы на частые вопросы: как удалить дубликаты, выбрать первые 10 строк, проверить NULL, сделать резервную копию.

Курс с нуля

  1. 1.Базы данных и SQL — с чего начатьЧто такое база данных, таблица и СУБД, чем SQLite отличается от MySQL и PostgreSQL, как поставить sqlite3 или DB Browser for SQLite и выполнить первый запрос.
  2. 2.Создание таблицы и типы данныхКак создать таблицу командой CREATE TABLE, какие типы данных есть в SQLite, MySQL и PostgreSQL, что значат NOT NULL, DEFAULT и CHECK и как удалить таблицу.
  3. 3.Добавление строк — INSERTКак добавить в таблицу одну или несколько строк командой INSERT, что будет с пропущенными столбцами, как записать текст с апострофом и что значат частые ошибки.
  4. 4.Выборка данных — SELECT, WHERE, ORDER BY, LIMITКак выбрать из таблицы нужные столбцы и строки: условия WHERE с AND, OR, IN и BETWEEN, сортировка ORDER BY, первые строки через LIMIT и уникальные значения DISTINCT.
  5. 5.Подсчёт и группировка — COUNT, SUM, AVG, GROUP BY, HAVINGКак посчитать строки, сумму, среднее, минимум и максимум, разбить таблицу на группы через GROUP BY и отобрать группы условием HAVING.
  6. 6.Объединение таблиц — JOINКак собрать в одном ответе данные из нескольких таблиц: INNER JOIN и LEFT JOIN, условие ON, псевдонимы таблиц, JOIN с группировкой и поиск строк без пары.
  7. 7.Изменение и удаление — UPDATE и DELETEКак изменить значения в строках командой UPDATE и удалить строки командой DELETE, почему без WHERE меняется вся таблица и как проверить запрос до выполнения.
  8. 8.Ключи, связи и индексыЧто такое первичный и внешний ключ, как связать таблицы через REFERENCES, включить проверку внешних ключей в SQLite и ускорить поиск индексом CREATE INDEX.
  9. 9.ПодзапросыКак использовать результат одного запроса внутри другого: подзапрос в WHERE, IN и EXISTS, в списке столбцов и в FROM, а также запросы с WITH и ловушка NOT IN с NULL.
  10. 10.Транзакции — BEGIN, COMMIT, ROLLBACKЧто такое транзакция и зачем она нужна, как сохранить изменения командой COMMIT или отменить их через ROLLBACK, что такое автофиксация и чем SQLite, MySQL и PostgreSQL отличаются в мелочах.

Начать с первого урока

Итоговый тест — 20 вопросов по всему курсу, ответы проверяются сразу.

Справочник

Официальная документация