Эта статья — не справочник по SQL. Мы постарались ввести новичков в мир баз данных, показать примеры и сферы использования. А также, почему нужно знать хотя бы базовые понятия SQL, чтобы быть хорошим программистом.
Что такое базы данных и как ими управлять
Чтобы мы лучше понимали друг друга, начнем с введения. Любой интернет-магазин, аптека или социальная сеть полна информации: контакты профилей, тексты постов, картинки, результаты соцопросов. Это все нужно где-то хранить, чтобы в нужный момент получить доступ: вынуть часть информации или всю. Для этого используют базы данных.
База данных похожа на медовые соты. У нее есть ячейки, а в каждой ячейке — таблица с конкретными данными. Таблица внизу — простейший пример ячейки базы данных. Взяли из статьи о правильном выборе учебной программы.
В коде базы данных обязательно структурированы. С хаосом мы бы ничего не смогли сделать: внести информацию или забрать.
Сейчас в нашем понимании существует две плоскости: первая — наш сайт, программа или мобильное приложение; вторая – база данных. Пока они соединены условно: данные из программы попадают в таблицу. Но с ними ничего нельзя сделать.
👉 Чтобы управлять таблицами, придумали СУБД — систему управления базами данных. Забегая наперед: MySQL — одна из самых популярных систем.
Технически MySQL можно представить как несколько соединенных таблиц. В каждой — своя информация. Возьмем пример с онлайн-магазином: покупатели, товары и покупки — три связанных таблицы. Если клиент заказал товар, данные о нем и его заказе разделяются по ячейкам.
С MySQL можно создавать новые таблицы и связывать их. Например, к онлайн-магазину добавить ячейку с гендерами клиентов, возрастом, предпочтениями (если мы захотели провести опрос на сайте).
Для управления таблицами СУБД не хватит. Это такая же условно работающая система, как и связь сервера и программы. Чтобы система могла общаться с базой данных, нужен специальный алфавит, набор команд. Этот язык — SQL.
Что такое SQL
SQL — это не язык программирования. Правильнее сказать, что это язык запросов к базам данных. Структура запроса сформирована в базе, а нам нужно задать правила — как правильно к ней обратиться.
На SQL можно писать программы, но очень сложно. Поэтому чаще всего языком запросов получают данные, а обрабатывают гибкими языками — например Python или JavaScript.
Что дает SQL:
-
можно найти конкретного человека в огромной таблице с данными;
-
сортировать выбранные данные;
-
удалять ненужную информацию;
-
добавить в ячейку строки и столбцы, расширив таблицу;
-
комбинировать таблицы, создавать связи. Например, если клиент указал контактные данные при покупке товара — информацию передаст на несколько таблиц: товар, клиент, покупка.
-
можно записать новую таблицу.
Язык SQL прост в освоении и использовании. Чтобы понять базу — хватит и дня. На работу с первыми операторами достаточно недели. А гуру тестировщикам или Back-end-разработчикам нужно учиться постоянно.
Первая и основная команда в SQL
Что должен уметь любой программист — выбирать информацию из таблицы. Для этого придумали оператор SELECT.
Применим на практике. Чтобы не создавать базу данных, зайдем в онлайн-компилятор mycompiler.io.
Слева находится база данных — Students. Сайт ее создал самостоятельно, как пример. Справа – кнопка RUN, чтобы воспроизвести запрос; и Output, который покажет результаты запроса.
В базе данных два студента: Ryan (мужчина – значок M) и Joanna (женщина — значок F). Попробуем выбрать студента женского пола из базы данных.
Вводим оператор SELECT. Выбираем таблицу, где возьмем данные. У нас это Students. Используем слово FROM (откуда берем) и название:
Чтобы выбрать конкретную информацию, применим слово WHERE. Выбираем пол студента — добавим к оператору gender и значение Female (F). Как это выглядит в коде:
Жмем RUN и смотрим на Output:
По результатам запроса нашли студента женского пола — Joanna. Теперь вы знаете основной оператор в SQL — SELECT. Также просто учатся и другие значения.
Список наиболее важных команд SQL
SELECT — извлекает данные из таблицы.
UPDATE — обновляет данные.
DELETE — удаление данных.
INSERT INTO — вставить новые данные в базу.
CREATE DATABASE — создать новую базу данных.
CREATE TABLE — создать одну таблицу.
DROP TABLE — удалить одну таблицу.
CREATE INDEX — создать маркер для поиска внутри базы данных.
DROP INDEX — удалить маркер.
Знание MySQL и языка запросов открывает большие возможности в программировании. Любое приложение или сайт с личным кабинетом, формами с информацией требует базы данных. Просто создать сайт не получится — нужно разбираться в том, как код сайта хранится в Интернете.
Для чего служит SQL в разных отраслях
Язык запросов используется программистами, аналитиками и даже маркетологами — всеми, кто работает с данными. Вот несколько примеров.
Финансы. Представим, что в банке каждый день проходит миллион денежных переводов: между пользователями, городами и странами. Все хранится в большой базе данных. SQL можно использовать для простого поиска отдельных экземпляров данных или данных, которые соответствуют определенным требованиям, например, снятие средств на сумму более $5 000 за последний месяц.
Еще пример — поиск информации для графиков. Можно отследить стоимость борщевого набора за несколько лет.
Маркетинг. Например, человеку понравился сайт о рыбалке. Сайт использует cookies — собирает первичную информацию о юзере: время проведения на сайте, посещенные страницы, клики по ссылкам. Все отправляется в базу данных.
Дальше маркетолог захочет проанализировать контент и создать рекламу в социальных сетях — только для любителей рыбалки.
SQL поможет выгрузить cookies о пользователе, которому понравился сайт. Позже маркетолог найдет человека в социальных сетях и добавит его в таргет-лист — ориентир для прицельной рекламы.
SQL позволяет маркетинговым командам принимать обоснованные, основанные на данных решения, а не полагаться только на догадки.
Data Science. Специалисты по анализу данных собирают и анализируют данные для графиков, отчетов, диаграмм,. Например, с SQL в медицине собирают статистические карты распространения конкретного заболевания. Как пример — это поможет медикам увидеть сложные участки и перебросить больше ресурсов, снизив темп заражения.
Где нужно знать SQL в программировании
Куда бы не пошел программист, тестировщик или аналитик — SQL станет преимуществом перед остальными.
Для Back-end-программирования — обязательно. Программы, сайты подключаются к огромным базам данных на сервере. За серверную часть отвечает бэкенд-разработчик. Он с SQL на равных: должен понимать, как подключать базы данных, извлекать информацию на сайт или для других специалистов. Если нужно — создать новую базу данных.
В SQL-разработке. Существует отдельная категория программистов на SQL. Это специалисты техподдержки, помощники службы аналитики, Data-Science и любых других профессий в мире данных. Если сотрудникам нужно часто и много выгружать данные, а информация в таблицах ежедневно растет — нанимают SQL-программиста.
Профессия встречается редко. Чаще берут админов серверов со знаниями языка запросов.
Front-end. Разработчик прямо не связан с SQL и базами данных. Но ему нужно знать язык на уровне простых операторов: понимать, как работают базы, что можно выгружать и как создавать новые таблицы. Часто на собеседованиях спрашивают об SQL, даже если его не было в карточке вакансии. Этакий, обязательный инструмент.
Тестирование. Для ручного тестирования нужно выгружать данные. Если программа небольшая — можно зайти в базу и найти ячейки с нужными параметрами. Но так долго и в простых программах.
Поэтому тестировщику нужен SQL на уровне базовых операторов. С ним проще работать и вкладываться в сроки, потому что на одной программе не засидишься — еще много работы.
Резюме
Главное из статьи:
-
Все данные хранятся в базах данных. Это таблицы: со столбцами и ячейками.
-
Системы управления базами данных позволяют общаться с таблицами. Язык общения (запросов) — SQL.
-
Операторы и общее понимание языка запросов учатся за несколько недель. Это не так трудно, как начать верстку с нуля. Или погрузиться в Back-end.
-
SQL нужен везде — от веб-разработки до маркетинга.
Если вы начинаете карьеру разработчика — заранее подумайте, что нужно изучить принципы работы баз данных, операторы SQL и работу MySQL.
Учить отдельно — скучно, потому что явного преимущества язык не дает. Пример с Front-end-разработкой: SQL можно выучить, но на уровень сайта это мало повлияет в конкретном задании. Поэтому мы учим все вместе, как на курсе «Разработка программного обеспечения». Приходите, если интересно.