Что такое MySQL и где он применяется

Знакомимся с MySQL: что это за СУБД, почему она так популярна и для каких задач подходит.

MySQL — реляционная система управления базами данных (СУБД) с открытым исходным кодом, которая хранит данные в таблицах и общается с приложением на языке SQL.

Если вы уже знаете базовый SQL, то модель MySQL вам знакома: данные лежат в таблицах, таблица состоит из строк и столбцов, а извлекаем и меняем мы их запросами SELECT, INSERT, UPDATE, DELETE. Этот курс не учит SQL заново — он про то, чем именно MySQL отличается от «SQL вообще» и как пользоваться ею на практике.

Почему MySQL так популярна

MySQL появилась в 1995 году и десятилетиями остаётся одной из самых распространённых баз данных в мире. Причин несколько:

  • Бесплатна и открыта. Community-редакция распространяется свободно, поэтому её ставят на миллионы серверов — от личного блога до крупных сервисов.
  • Простая в старте. Установка и базовая настройка занимают минуты, а порог входа ниже, чем у «тяжёлых» корпоративных СУБД.
  • Огромная экосистема. Драйверы есть для любого языка, а хостинги почти всегда предлагают MySQL «из коробки».
  • Проверена нагрузкой. На MySQL работают огромные проекты, так что в надёжности под вебом сомневаться не приходится.

LAMP и веб

Классическое место MySQL — это аббревиатура LAMP: Linux, Apache, MySQL, PHP (или Python/Perl). Это стек, на котором выросла значительная часть веба: сайты, интернет-магазины, форумы, CMS вроде WordPress. Приложение принимает запрос пользователя, ходит в MySQL за данными и отдаёт готовую страницу.

Типичные задачи, где MySQL чувствует себя отлично:

  • хранение пользователей, заказов, товаров, статей;
  • каталоги и поиск по структурированным данным;
  • учётные и биллинговые системы;
  • бэкенд мобильных и веб-приложений.

MySQL и SQL — в чём разница

SQL — это язык запросов, стандарт. MySQL — конкретная программа (сервер), которая этот язык понимает, но со своими расширениями и особенностями. Поэтому переносимый SQL работает почти везде одинаково, а вот, например, автоинкремент или функции работы с датами в MySQL записываются по-своему.

Чтобы вы сразу чувствовали разницу, в этом курсе мы помечаем примеры так: универсальный SQL вы можете прямо тут запускать в живой песочнице, а MySQL-специфичные конструкции показаны отдельными блоками для чтения.

Вот переносимый пример, который выполнится в песочнице: создаём таблицу, добавляем строки и читаем их.

CREATE TABLE cities (
  id INTEGER PRIMARY KEY,
  name TEXT,
  country TEXT,
  population INTEGER
);

INSERT INTO cities (id, name, country, population) VALUES
  (1, 'Москва', 'Россия', 13000000),
  (2, 'Берлин', 'Германия', 3700000),
  (3, 'Токио', 'Япония', 14000000);

SELECT name, population FROM cities ORDER BY population DESC;

Вывод:

name     population
Токио    14000000
Москва   13000000
Берлин   3700000

Редакции MySQL и форк MariaDB

У MySQL есть бесплатная Community Edition и платная Enterprise (с поддержкой и доп.инструментами). Сама MySQL принадлежит Oracle. Существует и популярный форк — MariaDB, созданный авторами оригинальной MySQL; он во многом совместим, и часть команд работает одинаково.

Итог

  • MySQL — открытая реляционная СУБД, лидер в вебе и сердце стека LAMP.
  • SQL — это язык, MySQL — сервер, который его реализует со своими расширениями.
  • Подходит для большинства типовых веб- и бизнес-задач: пользователи, заказы, каталоги.
  • Дальше в курсе: переносимый SQL пробуем в песочнице, MySQL-специфику читаем и применяем осознанно.
Проверьте себя
1. Что из перечисленного точнее всего описывает MySQL?
AЯзык запросов — стандарт ISO
BРеляционная СУБД с открытым кодом
CБиблиотека для работы с CSV
DВеб-сервер для отдачи страниц
2. Что означает буква M в аббревиатуре LAMP?
AMarkup
BModule
CMySQL
DMemory
3. MariaDB по отношению к MySQL — это…
Aсовершенно другая нереляционная база
Bсовместимый форк, созданный авторами MySQL
Cплатная версия от Oracle
Dграфический клиент для MySQL
Поддержать проект