MySQL
Изучите MySQL - от командной строки до проектирования схем. Основы SQL, объединения таблиц, индексы, транзакции, хранимые процедуры, EXPLAIN и операции с базой данных.
13 уроков по порядку
- 120 мин
Что такое MySQL
Добро пожаловать. Если вы никогда раньше не работали с базами данных, вы попали куда нужно. В этом уроке не будет запросов, которые надо писать. Мы...
Relational databaseHistory and Oracle ownershipMariaDB forkMySQL vs Postgres trade-offsInnoDB default engine - 225 мин
MySQL CLI и первые команды
Прошлый урок был сплошным разговором: что такое MySQL, откуда он взялся, зачем нужен. Ничего из этого не даёт вам возможности хоть о чём-то спросить...
Mysql clientConnecting with -u and -pSHOW DATABASESUSESHOW TABLESDESCRIBE+2 - 330 мин
Создание баз данных и таблиц
На прошлом уроке вы только смотрели. Вы подключились, осмотрели системные базы данных и заглянули внутрь таблицы, которую MySQL создал за вас...
CREATE DATABASECharacter sets and collationCREATE TABLEPRIMARY KEYAUTO_INCREMENTNOT NULL+3 - 430 мин
Типы данных
Оглянитесь на таблицу products из прошлого урока, и вы заметите, что у каждого столбца был тип (type): INT, VARCHAR(120), DECIMAL(10, 2). Это не было...
INT and BIGINTDECIMAL vs FLOATVARCHAR vs TEXTBOOLEAN as TINYINTDATE vs DATETIME vs TIMESTAMPENUM+1 - 530 мин
SELECT и WHERE
В вашей таблице десять тысяч товаров, а вам нужны те шесть, которых нет на складе, в категории электроники. Всё, что вы когда-либо будете делать с...
SELECT columnsWHEREAND and ORBETWEENINLIKE with % and _+3 - 635 мин
Joins
Ваши пользователи живут в одной таблице (table), а их заказы в другой, и единственная нить, связывающая заказ с человеком, который его сделал, - это...
INNER JOINLEFT JOINRIGHT JOINNo FULL OUTER JOINUNION workaroundSelf-join+1 - 730 мин
Агрегаты и группировка
Кто-то спрашивает, как регион EU отработал в прошлом квартале. Ему не нужны четыре тысячи строк (row), ему нужно одно число, и если вы вытащите все...
COUNTSUMAVGMIN and MAXGROUP BYHAVING+2 - 830 мин
Индексы
Эндпоинт для входа отлично работал на двухстах тестовых пользователях. В продакшене, на четырёх миллионах, WHERE email = '[email protected]' занимает...
B-tree indexCREATE INDEXMulti-column index left-prefix ruleUNIQUE indexFULLTEXT indexIndexes hurt write performance - 935 мин
Транзакции и подсистемы хранения
Два оператора UPDATE переводят двадцать фунтов от Ada к Bilal. Первый выполняется, соединение обрывается, второй так и не происходит, и двадцать...
InnoDB vs MyISAMSTART TRANSACTIONCOMMITROLLBACKIsolation levelsREPEATABLE READ default+1 - 1035 мин
Хранимые процедуры и триггеры
Каждый заказ в системе должен записываться в журнал аудита (audit log). Большинство и правда записывается. Те, что не записываются, приходят из...
DELIMITERCREATE PROCEDUREIN and OUT parametersCALLCREATE TRIGGERBEFORE INSERT and AFTER UPDATE+1 - 1135 мин
EXPLAIN и настройка запросов
«Этот запрос выполняется медленно.» Вы будете слышать эту фразу до конца карьеры, и заманчивый ответ на неё - начать что-то менять: добавить сюда...
EXPLAINType column (ALL, ref, range, eq_ref, const)Key and rows columnsEXPLAIN ANALYZE (MySQL 8+)Adding a missing indexSlow query log - 1225 мин
mysqldump и восстановление
Ночная задача уже восемь месяцев пишет файл на диск, и его никто ни разу не открывал. Это не резервная копия, это файл, на который просто надеются....
MysqldumpRedirecting to .sqlRestoring with mysql client--single-transaction for InnoDB--no-data for schema only--all-databases - 1350 мин
Итоговый проект: разработка схемы для интернет-магазина
В каждом уроке до этого вам давали готовую таблицу и просили её опросить. Настоящая работа устроена наоборот: кто-то описывает магазин, а вам нужно...
Foreign keysON DELETE behaviorIndexes on lookup columnsTransactional order creationEXPLAIN on a real query
Изучай MySQL на своём языке
Каждый урок, тест и ответ наставника показывается на вашем языке. AI-наставник отвечает на том языке, на котором вы пишете.
Roles that use MySQL
See how hiring teams interview engineers on MySQL, in production-like environments.
Database Administrator (DBA)
Hire DBAs in real workspaces with PostgreSQL or MySQL, real replication lag, real slow queries and real backups to restore. Live or take-home.
See the interviewBackend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interview