раздел 35
SQLite с нуля
SQLite, база в одном файле, для тех, кто пишет первый SQL. Утилита sqlite3, динамическая типизация и первая таблица. Выборка, сортировка и NULL, изменение данных и схемы, ограничения и внешние ключи. Связи и соединения, подзапросы, агрегаты и группировка, встроенные функции, CASE и оконные функции. Финал про индексы и план запроса, представления, транзакции, особенности SQLite и работу с базой из кода.
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Раздел открыт для всех. Войди, чтобы отмечать пройденные уроки, вести заметки и решать задачи в редакторе. войти
Уроки раздела
- Что такое SQLite
- Утилита sqlite3 и создание базы
- Типы данных и динамическая типизация
- Первая таблица: CREATE, INSERT, SELECT
- SELECT, столбцы и псевдонимы
- WHERE и операторы сравнения
- Сортировка, LIMIT, DISTINCT
- NULL и проверка на пустоту
- INSERT, UPDATE, DELETE
- Ограничения и первичный ключ
- ALTER TABLE: изменение схемы
- Внешние ключи и целостность
- Моделирование связей: один-ко-многим
- INNER JOIN и LEFT JOIN
- Подзапросы
- Самосоединение
- Агрегатные функции
- GROUP BY и HAVING
- Встроенные функции, даты и CAST
- CASE WHEN и оконные функции
- Индексы и EXPLAIN QUERY PLAN
- Представления (VIEW)
- Транзакции: BEGIN, COMMIT, ROLLBACK
- Особенности SQLite и работа из кода
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Введение в SQLite
- Первая таблица: CREATE, INSERT, SELECTCREATE TABLE со столбцами, INSERT одной и нескольких строк, SELECT *, rowid и DROP TABLE.урок 4 · Первая таблица: CREATE, INSERT, SELECTопираются: урок 5
- Типы данных и динамическая типизацияПять классов хранения, typeof, тип у значения, а не у столбца, родство столбца и таблицы STRICT.урок 3 · Типы данных и динамическая типизацияопираются: урок 4
- Утилита sqlite3 и создание базыУстановка sqlite3, файл базы, приглашение и продолжение строки, точка с запятой, .tables, .schema, .mode и .headers.урок 2 · Утилита sqlite3 и создание базыопираются: урок 3
- Что такое SQLiteВстраиваемая база в одном файле: библиотека вместо сервера, где SQLite стоит в телефонах и браузерах и когда она не подходит.урок 1 · Что такое SQLiteопираются: урок 2
Выборка данных
- Сортировка, LIMIT, DISTINCTORDER BY по нескольким столбцам, ASC и DESC, LIMIT и OFFSET для страниц, DISTINCT для уникальных значений.урок 7 · Сортировка, LIMIT, DISTINCTопираются: урок 8
- NULL и проверка на пустотуNULL как «неизвестно», IS NULL и IS NOT NULL, трёхзначная логика, coalesce, ifnull и NULLS LAST.урок 8 · NULL и проверка на пустотуопираются: урок 9
- SELECT, столбцы и псевдонимыВыбор столбцов, выражения в списке SELECT, псевдонимы через AS, конкатенация ||, почему SELECT * плох в коде.урок 5 · SELECT, столбцы и псевдонимыопираются: урок 6
- WHERE и операторы сравненияФильтр строк, =, <>, <, BETWEEN, IN, LIKE, AND, OR, NOT и скобки, сравнение текста и чисел.урок 6 · WHERE и операторы сравненияопираются: урок 7
Изменение данных и схема
- Внешние ключи и целостностьREFERENCES, PRAGMA foreign_keys = ON для каждого соединения, ON DELETE CASCADE и SET NULL.урок 12 · Внешние ключи и целостностьопираются: урок 13
- Ограничения и первичный ключPRIMARY KEY и INTEGER PRIMARY KEY как rowid, NOT NULL, UNIQUE, DEFAULT, CHECK и тексты ошибок.урок 10 · Ограничения и первичный ключопираются: урок 11
- ALTER TABLE: изменение схемыRENAME TO, ADD COLUMN, RENAME COLUMN, DROP COLUMN и пересборка таблицы для того, что ALTER не умеет.урок 11 · ALTER TABLE: изменение схемыопираются: урок 12
- INSERT, UPDATE, DELETEВставка с перечнем столбцов, изменение и удаление по WHERE, changes(), RETURNING и почему WHERE обязателен.урок 9 · INSERT, UPDATE, DELETEопираются: урок 10
Связи и соединения
- Моделирование связей: один-ко-многимСвязь один-ко-многим через внешний ключ, многие-ко-многим через связующую таблицу, составной первичный ключ.урок 13 · Моделирование связей: один-ко-многимопираются: урок 14
- ПодзапросыСкалярный подзапрос, IN и EXISTS, подзапрос в FROM, коррелированный подзапрос и WITH.урок 15 · Подзапросыопираются: урок 16
- СамосоединениеТаблица, соединённая сама с собой: сотрудник и руководитель, пары строк одной таблицы.урок 16 · Самосоединениеопираются: урок 17
- INNER JOIN и LEFT JOINСоединение таблиц по условию, псевдонимы таблиц, строки без пары, LEFT JOIN и поиск строк без совпадений.урок 14 · INNER JOIN и LEFT JOINопираются: урок 15
Агрегация и группировка
- Агрегатные функцииcount(*) и count(столбец), sum, avg, min, max, total, group_concat и как агрегаты обходят NULL.урок 17 · Агрегатные функцииопираются: урок 18
- Встроенные функции, даты и CASTСтроковые и числовые функции, даты как текст ISO 8601, date, strftime и модификаторы, CAST и целочисленное деление.урок 19 · Встроенные функции, даты и CASTопираются: урок 20
- CASE WHEN и оконные функцииCASE для условий в запросе, оконные функции OVER, PARTITION BY, row_number, rank и нарастающий итог.урок 20 · CASE WHEN и оконные функцииопираются: урок 21
- GROUP BY и HAVINGГруппы строк, агрегат на группу, HAVING против WHERE, группировка по выражению и порядок выполнения.урок 18 · GROUP BY и HAVINGопираются: урок 19
Практика и возможности
- Индексы и EXPLAIN QUERY PLANИндекс как алфавитный указатель, CREATE INDEX, SCAN против SEARCH, .indexes и цена индекса при записи.урок 21 · Индексы и EXPLAIN QUERY PLANопираются: урок 22
- Особенности SQLite и работа из кодаЧто SQLite делает иначе, модуль sqlite3 в Python и node:sqlite, параметры запроса и защита от SQL-инъекций.урок 24 · Особенности SQLite и работа из кода
- Представления (VIEW)Сохранённый запрос под именем, CREATE VIEW, представление как таблица только для чтения, DROP VIEW.урок 22 · Представления (VIEW)опираются: урок 23
- Транзакции: BEGIN, COMMIT, ROLLBACKВсё или ничего, автоматические транзакции, BEGIN, COMMIT, ROLLBACK, блокировка файла и режим WAL.урок 23 · Транзакции: BEGIN, COMMIT, ROLLBACKопираются: урок 24