Как работает язык SQL
Мы медленно продвигаемся в вопросах баз данных. Полезная штука для тех, кто пишет софт для веба.
Чтобы мы с вами были на одной волне, вот краткое содержание предыдущих частей. Оно покажет, где мы находимся и как мы сюда добрались:
- В мире много разных данных: текст, фото, видео, информация с датчиков и служебные сообщения от разных устройств.
- Чтобы в них разбираться, данные нужно как-то организовать.
- База данных — способ организовать информацию так, чтобы было удобно её обрабатывать и находить то, что нужно.
- Базу данных можно вести в текстовом файлике или даже на листочке, но это будет неудобно, если информации станет много.
- Ещё один плюс баз данных — с ними может работать сразу несколько пользователей, и информация при этом не перепутается.
- Базы данных сейчас используются везде, где хранится много информации: в больницах, муниципальных и государственных сервисах, на промышленных предприятиях, в социальных сетях и интернет-магазинах. Даже на домашнем компьютере есть служебная база данных, в которой хранится вся информация о ваших файлах.
- MySQL — одна из технологий организации базы данных, где всё основано на таблицах и связях между ними.
- Чтобы управлять такой базой и работать с данными, используют специальный язык SQL.
Теперь, когда у нас есть все эти знания, можем поговорить про SQL — язык запросов, который управляет базой и данными.
Эта статья — не справочник по SQL, а мини-экскурсия по основным командам и способу работы. Мы сейчас просто посмотрим, как оно внутри работает, как управляется и что для этого нужно. А когда вам действительно понадобится SQL по работе или в учёбе, то вы уже будете знать, как и куда развивать свои знания.
SQL — это язык запросов (и немножко программирования)
Чтобы не было путаницы, сразу поясним: SQL — это не совсем язык программирования. Правильно сказать, что это язык запросов к базе данных. Название так и расшифровывается: «язык структурированных запросов» (Structured Query Language). Это значит, что каждый запрос к базе данных формируется по какой-то структуре, а сам язык задаёт правила, как именно сделать такой запрос.
Назвать SQL полноценным языком программирования можно, но писать на нём привычные нам программы сложно. Гораздо проще использовать его как способ получить данные из базы, а потом обработать их с помощью более гибких и удобных языков: Python, JavaScript, C++ или другого подобного языка.
Как запустить терминал базы данных
Если вы ещё не ставили себе MySQL — зайдите на страницу с вариантами установок и выберите нужную. После установки и запуска откройте командную строку и напишите там такое:
- mysql — команды для запуска терминала управлением базой данных;
- -u — говорит команде о том, что сейчас будет имя пользователя, под которым он будет работать с базой данных. Это нужно для того, чтобы база знала, кто и когда какие изменения внёс.
- root — имя пользователя. Но root — это особое имя, оно означает суперпользователя, у которого есть вообще все права и доступ ко всему.
После запуска у командной строки немного поменяется внешний вид и приглашение изменится на mysql> — это значит, что база данных готова принимать и обрабатывать ваши команды:
Онлайн-компиляторы SQL-запросов
Если вы не хотите пока ставить базу себе на компьютер, но всё равно хотите попрактиковаться, используйте любой онлайн-компилятор SQL, например mycompiler.io.
Скорее всего, такой бесплатный сервис не будет хранить ваши данные вечно, но если нужно потренироваться и при этом ничего не сломать в рабочей базе — самое то.
Создаём базу данных
Чтобы заполнять базу данных чем угодно, её сначала нужно создать:
👉 Мы специально выделяем большими буквами SQL-команды, но сейчас базы понимают команды и из маленьких букв (а раньше не могли). Поэтому пишите как вам удобно.
Эта команда создаст базу с выбранным именем, чтобы дальше можно было с ней работать. Переименовать базу данных нельзя — только удалить и создать заново, имейте это в виду.
Чтобы посмотреть, сколько баз данных у вас есть, наберите команду
Когда определитесь, с какой базой будете работать, наберите эту команду — она покажет системе, что всё дальше будет относиться к ней:
Создаём таблицу
Таблица — основной компонент в MySQL. Они состоят из полей и записей, которые относятся к своим полям. Чтобы было проще понять, что такое поля и записи, можно представить так:
- таблица — это ящик, внутри которого хранятся одинаковые карточки.
- когда мы создаём таблицу, нам нужно придумать, какие поля мы будем заполнять в каждой карточке.
- внутри таблицы все поля у всех карточке одинаковые, отличаются только записи внутри них.
Допустим, вы ведёте ежедневник в виде карточек. Тогда у вас будут всего два поля: дата и события за день. Дата будет записываться в формате «год — месяц — число», а события — в виде простого текста. Получается, что для записи каждого дня вы берёте пустую карточку, заполняете в ней нужные поля и кладёте карточку в ящик (таблицу в базе данных).
Зная это, создадим таблицу, чтобы вести в ней учёт входящих обращений в сервисный центр:
CREATE TABLE support_log (
id INT AUTO_INCREMENT PRIMARY KEY,
city_id INT,
day DATE,
reason TEXT,
);
Теперь разберём команду подробнее:
- CREATE TABLE имя_таблицы — создаёт таблицу с указанным именем внутри текущей базы данных. Таблицы переименовывать можно, поэтому тут можно всё поправить, если что-то будет не так.
- id INT AUTO_INCREMENT PRIMARY KEY — создаёт поле с названием id, внутри него будут только числа, а ещё значение в этом поле само увеличивается на единицу в каждой новой записи. PRIMARY KEY означает, что это поле служит для связи с другими таблицами внутри базы данных.
- city_id INT — создаёт поле city_id для чисел.
- day DATE — создаёт поле для даты с именем day.
- reason TEXT — создаёт поле reason, в который можно положить текст почти любой длины.
Такие поля нам нужны, чтобы при каждом обращении в сервисный центр мы могли записать:
- код города, откуда пришло обращение (city_id);
- дату обращения (day);
- и саму причину обращения в сервис (reason).
Добавляем запись
У нас есть таблица, и теперь мы можем что-то записать в свою базу данных:
INSERT INTO support_log SET city_id = 32, day = ‘2021-09-11’, reason = ‘Не работает пылесос, только жужжит и всё’;
- команда INSERT INTO support_log сказала базе данных, что сейчас будем как-то менять записи в таблице support_log;
- ключ SET означает, что мы добавляем новую запись в эту таблицу;
- city_id = 32 — указываем код города, откуда было обращение;
- day = ‘2021-09-11’ — ставим дату обращения;
- reason = ‘Не работает пылесос, только жужжит и всё’ — пишем причину.
Так, команда за командой, и наполняется база данных. Конечно, сейчас уже никто вручную не заполняет базу с нуля, но когда нужно поправить какую-то запись или поменять настройки базы, то разработчики вспоминают SQL и пишут все команды руками.
Что дальше
Мы только начали разбираться с базами данных и SQL-командами — впереди у нас запросы и хитрые фильтры. Они помогут сразу достать нужную информацию и покажут в удобном для нас виде.
А вообще MySQL — важная часть в бэкенде и в ИТ в целом. На базах данных держатся все интернет-магазины, сервисы, соцсети, магазины и аптеки. Если интересно, как это всё работает изнутри, — приходите в Практикум.