MySQL — царица баз
easy

MySQL — царица баз

Она сложная, но с ней всё просто.

Когда мы говорили о том, какие бывают базы данных, то немного рассказали о реляционных БД. Самый очевидный пример такой базы данных — MySQL. О ней и поговорим. 

⚠️ С формальной точки зрения MySQL — это не сама база данных, а система управления базой данных (СУБД). Но в языке так сложилось, что саму базу и систему её управления мы называем одними и теми же словами. Простите нас за это упрощение. 

Что такое MySQL

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

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

MySQL — царица баз

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

👉 Всё, что мы делаем в MySQL, — создаём таблицы с данными и настраиваем связи между ними.

Кому это нужно

Знать MySQL нужно всем, кто занимается разработкой веб-приложений и сайтов. Это очень распространённая технология — если ваше приложение или сайт имеет в каком-либо виде личный кабинет или просто хранит любые данные, то почти наверняка в нём будет использоваться MySQL.

Вы можете обойтись и без конкретно этой системы управления. Можно использовать PostgreSQL или NoSQL. Можно просто хранить данные у клиента или в «сыром» файлике. Но если вы хотите делать систему, которую будет легко поддерживать и передать другим людям для доработки и развития, — скорее всего, вы выберете MySQL.

Как работают связи в базе данных

Связи между таблицами показывают, как одни данные могут зависеть от других. В зависимости от того, как вы настроите связи, база может получать разные результаты и искать данные. В связи может участвовать одна запись, а может сразу много.

Один к одному. Это самый простой вид связи, который говорит: одной записи из этой таблицы соответствует только одна запись из другой таблицы. Если мы сделаем новую таблицу с фотографиями клиентов, то каждой фотографии будет соответствовать только один клиент и наоборот.

Один ко многим. Когда у нас есть таблица с клиентами и таблица с их покупками, тут работает связь «один ко многим». Это значит, что у нас одной записи о клиенте соответствует несколько записей об их покупках, например, если он их сделал в разное время. Благодаря этой связи мы можем вывести все покупки для каждого клиента в отдельности.

Ещё пример — художники и картины. Каждая картина принадлежит только одному художнику, но одному художнику может принадлежать много разных картин. 

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

Допустим, вы ведёте свой список дел в ежедневнике, где можно ставить метки для дел. Метки помогают понять, что за дело перед вами, и выглядят примерно так: «в дороге», «позвонить», «на неделе», «подписать у Иваныча» и «за компьютером». Их можно назначить любой задаче — одну метку, две или все сразу. Получается так:

  • одна метка может стоять на множестве разных задач
  • у одной задачи может быть много разных меток. 

Это значит, что мы связали множество меток со множеством задач и теперь можем искать одно через другое.

Что может храниться в MySQL

В MySQL может храниться что угодно, если вы можете настроить связи между данными. Вы можете хранить в такой базе заметки, фото, музыку, списки дел, задачи на год и все лекции по теории вероятности. Весь вопрос в том, чтобы вы понимали, как вы будете это использовать дальше.

Например, все наши статьи в «Коде» хранятся в MySQL-базе, с которой мы работаем через Вордпресс. Там же есть информация и об авторах, и о картинках для статей, о дате публикации и о многом другом. Чтобы вы прочитали эту статью, сайт обратился к базе данных, взял оттуда статью, правильно её обработал и показал вам.

Другие используют MySQL для работы с клиентской базой — в бизнесе, поликлиниках или системах учёта товаров. 

Самой базе всё равно, что в ней хранится и как вы этим пользуетесь. База данных — это просто способ связать данные вместе, а потом найти в них то, что нужно.

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

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

Ещё в MySQL встроены системы безопасности и разграничения доступа. Например, можно сделать так, чтобы менеджер мог только вносить данные, руководитель отдела — изменять их, но не удалять, а директор мог делать с данными что угодно.

Но основная причина популярности MySQL — полная поддержка SQL-языка.

Что такое язык SQL

Чтобы работать с реляционной базой данных, нужно знать специальный язык запросов — SQL. Это расшифровывается как structured query language — язык структурированных запросов. «Структурированный» означает, что каждый запрос должен иметь определённую структуру, чтобы база поняла, как на него реагировать. 

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

С помощью запросов можно делать что угодно: 

  • создавать и изменять таблицы,
  • настраивать связи между ними,
  • вносить и удалять данные, 
  • настраивать доступ для разных пользователей,
  • а главное — искать то, что нужно, по любым параметрам.

Если вы знаете SQL, то можете работать с любой реляционной базой данных, которые его поддерживают. 

А покажите сами запросы

А пожалуйста.

Создадим базу данных THECODE_MEDIA:

CREATE DATABASE THECODE_MEDIA;

Скажем, что будем дальше работать именно с этой базой:

USE THECODE_MEDIA;

Создадим таблицу с названиями статей, авторами и количеством прочтений за месяц:

CREATE TABLE STATS (name VARCHAR(200), author VARCHAR(20), readers INT);

Загрузим в таблицу уже готовые данные из файла:

LOAD DATA LOCAL INFILE 'thecode/readers_stat.txt' INTO TABLE STATS;

А теперь выведем их на экран:

SELECT * FROM STATS;

Команд в SQL настолько много, что нам понадобится отдельная статья для практики. Сделаем для этого отдельный проект, на котором покажем, как MySQL работает с запросами и таблицами.

Работа с MySQL через запросы в терминале

Коротко главное

  1. MySQL — система управления реляционными базами данных. Реляционными — то есть такими, между которыми есть однозначные прописанные связи. Можно представить, что это система управления табличными базами данных. 
  2. Таблицы могут быть связаны между собой, чтобы можно было проще найти нужную информацию.
  3. Для работы с реляционными БД используют специальный язык — SQL.
  4. Каждая команда в SQL — это запрос к базе, чтобы она что-то нашла, изменила, добавила или удалила у себя.
  5. MySQL используют уже 25 лет, поэтому это проверенная и надёжная база данных. Кто любит MySQL, тому легко ориентироваться в технологиях современного веба. 

Что дальше

На очереди — нереляционные базы и NoSQL. Там вообще всё не так, как здесь, поэтому разбирать будем отдельно.

Текст и иллюстрации

Миша Полянин


Редактор

Максим Ильяхов


Корректор

Ира Михеева


Иллюстратор

Даня Берковский


Вёрстка

Маша Дронова


Доставка

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy