раздел 34
MySQL с нуля
MySQL для тех, кто ставит его впервые. Установка, клиент mysql, базы и пользователи, движки InnoDB и MyISAM. Типы данных от целых с AUTO_INCREMENT до JSON, таблицы с ключами и ограничениями, запросы от SELECT до подзапросов и UNION, изменение данных и вставка с ON DUPLICATE KEY UPDATE. Финал про то, что нужно в работе: транзакции InnoDB, индексы и EXPLAIN, представления, процедуры и триггеры, привилегии, бэкапы и репликация.
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Раздел открыт для всех. Войди, чтобы отмечать пройденные уроки, вести заметки и решать задачи в редакторе. войти
Уроки раздела
- Что такое MySQL и где он применяется
- Установка MySQL и подключение клиентом
- Создание базы данных и пользователя
- Движки хранения: InnoDB и MyISAM
- Числовые типы и AUTO_INCREMENT
- Строковые типы: VARCHAR, TEXT, CHAR, ENUM
- Дата и время: DATE, DATETIME, TIMESTAMP
- JSON и выбор правильного типа
- CREATE TABLE и первичный ключ
- Внешние ключи и ссылочная целостность
- Ограничения: NOT NULL, UNIQUE, DEFAULT, CHECK
- ALTER TABLE и нормализация
- SELECT, WHERE, ORDER BY и LIMIT
- JOIN: INNER, LEFT и RIGHT
- Агрегаты, GROUP BY и HAVING
- Подзапросы и UNION
- INSERT, UPDATE и DELETE
- INSERT ... ON DUPLICATE KEY UPDATE
- Транзакции в InnoDB
- Индексы и EXPLAIN
- Представления (VIEW)
- Хранимые процедуры, функции и триггеры
- Пользователи, привилегии и резервные копии
- Репликация и что дальше
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Введение в MySQL
- Движки хранения: InnoDB и MyISAMДвижок как способ хранить таблицу, SHOW ENGINES, транзакции и внешние ключи InnoDB, что теряет MyISAM.урок 4 · Движки хранения: InnoDB и MyISAMопираются: урок 5
- Создание базы данных и пользователяCREATE DATABASE и USE, SHOW DATABASES, CREATE USER, пользователь как имя плюс хост, GRANT на базу.урок 3 · Создание базы данных и пользователяопираются: урок 4
- Установка MySQL и подключение клиентомMySQL 8.4 в Docker, клиент mysql, приглашение mysql> и продолжение ->, точка с запятой и \G, первые команды SHOW.урок 2 · Установка MySQL и подключение клиентомопираются: урок 3
- Что такое MySQL и где он применяетсяКлиент-серверная СУБД, сервер mysqld и клиент mysql, версии LTS, MySQL рядом с PostgreSQL и SQLite, учебная база кинотеатра.урок 1 · Что такое MySQL и где он применяетсяопираются: урок 2
Типы данных MySQL
- Дата и время: DATE, DATETIME, TIMESTAMPDATE, DATETIME и TIMESTAMP, часовой пояс сессии, NOW, DATE_FORMAT, DATEDIFF, DATE_ADD и INTERVAL, неверные даты.урок 7 · Дата и время: DATE, DATETIME, TIMESTAMPопираются: урок 8
- Строковые типы: VARCHAR, TEXT, CHAR, ENUMCHAR и VARCHAR, длина в символах и байтах, Data too long, TEXT, ENUM и его порядок, сравнение без учёта регистра.урок 6 · Строковые типы: VARCHAR, TEXT, CHAR, ENUMопираются: урок 7
- Числовые типы и AUTO_INCREMENTTINYINT, INT и BIGINT, UNSIGNED и ошибка Out of range, DECIMAL против FLOAT, AUTO_INCREMENT, LAST_INSERT_ID и дыры в нумерации.урок 5 · Числовые типы и AUTO_INCREMENTопираются: урок 6
- JSON и выбор правильного типаКолонка JSON, операторы -> и ->>, JSON_EXTRACT, MEMBER OF, JSON_SET, проверка JSON при записи, как выбрать тип колонки.урок 8 · JSON и выбор правильного типаопираются: урок 9
Таблицы, ключи и ограничения
- Внешние ключи и ссылочная целостностьFOREIGN KEY и REFERENCES, ошибки 1452 и 1451, ON DELETE CASCADE и SET NULL, автоматический индекс.урок 10 · Внешние ключи и ссылочная целостностьопираются: урок 11
- Ограничения: NOT NULL, UNIQUE, DEFAULT, CHECKNOT NULL и строгий режим, UNIQUE и сортировка без регистра, DEFAULT и CURRENT_TIMESTAMP, CHECK.урок 11 · Ограничения: NOT NULL, UNIQUE, DEFAULT, CHECKопираются: урок 12
- ALTER TABLE и нормализацияADD, MODIFY, RENAME и DROP COLUMN, сколько строк переписывает ALTER, вынос повторов в отдельную таблицу.урок 12 · ALTER TABLE и нормализацияопираются: урок 13
- CREATE TABLE и первичный ключCREATE TABLE, SHOW CREATE TABLE и DESCRIBE, первичный ключ и кластерный индекс InnoDB, составной ключ.урок 9 · CREATE TABLE и первичный ключопираются: урок 10
Запросы и соединения
- Агрегаты, GROUP BY и HAVINGCOUNT, SUM, AVG, MIN и MAX, GROUP BY и ONLY_FULL_GROUP_BY, HAVING против WHERE, GROUP_CONCAT.урок 15 · Агрегаты, GROUP BY и HAVINGопираются: урок 16
- Подзапросы и UNIONСкалярный подзапрос, IN и EXISTS, производная таблица, коррелированный подзапрос, UNION и UNION ALL.урок 16 · Подзапросы и UNIONопираются: урок 17
- JOIN: INNER, LEFT и RIGHTСоединение по ключу, INNER против LEFT, строки без пары, RIGHT JOIN, псевдонимы таблиц и USING.урок 14 · JOIN: INNER, LEFT и RIGHTопираются: урок 15
- SELECT, WHERE, ORDER BY и LIMITВыбор колонок, фильтры, LIKE без учёта регистра, ловушка NULL, сортировка, LIMIT со смещением и DISTINCT.урок 13 · SELECT, WHERE, ORDER BY и LIMITопираются: урок 14
Изменение данных и производительность
- Индексы и EXPLAINB-дерево, CREATE INDEX, колонки type, key и rows в EXPLAIN, составной индекс и левый префикс, покрывающий индекс.урок 20 · Индексы и EXPLAINопираются: урок 21
- Транзакции в InnoDBSTART TRANSACTION, COMMIT и ROLLBACK, autocommit, SAVEPOINT, атомарность оператора, AUTO_INCREMENT после отката.урок 19 · Транзакции в InnoDBопираются: урок 20
- INSERT ... ON DUPLICATE KEY UPDATEВставка или обновление по уникальному ключу, счётчик затронутых строк, псевдоним строки вместо VALUES(), INSERT IGNORE и REPLACE.урок 18 · INSERT ... ON DUPLICATE KEY UPDATEопираются: урок 19
- INSERT, UPDATE и DELETEВставка нескольких строк, INSERT ... SELECT, строки Records и Rows matched, UPDATE и DELETE с WHERE и LIMIT.урок 17 · INSERT, UPDATE и DELETEопираются: урок 18
Продвинутое и эксплуатация
- Пользователи, привилегии и резервные копииПринцип наименьших прав, GRANT и REVOKE, SHOW GRANTS, mysqldump и восстановление из дампа.урок 23 · Пользователи, привилегии и резервные копииопираются: урок 24
- Представления (VIEW)CREATE VIEW, представление как сохранённый запрос, CREATE OR REPLACE, SHOW FULL TABLES, обновляемые представления.урок 21 · Представления (VIEW)опираются: урок 22
- Репликация и что дальшеБинарный журнал, источник и реплика, GTID, задержка реплики, куда двигаться после раздела.урок 24 · Репликация и что дальше
- Хранимые процедуры, функции и триггерыDELIMITER, процедура с параметрами IN и OUT, функция, триггер BEFORE и AFTER с NEW и OLD, SIGNAL.урок 22 · Хранимые процедуры, функции и триггерыопираются: урок 23