Наверняка при просмотре вакансий или во время общения с коллегами вы могли заметить, что сейчас все чаще и чаще знание языка SQL указывается в графе “Будет бонусом” или даже в необходимых навыках, а на практике его применяют самые разные специалисты: разработчики, тестировщики, аналитики, проджект-менеджеры и т.п. А нужен ли он именно вам? Давайте рассмотрим вместе, что такое SQL, кому и для чего может пригодится его знание в серии статей “Делаем SQL конкурентным преимуществом”.
Немного об SQL и Базах Данных
SQL расшифровывается как Structured Query Language - язык структурированных запросов. Он считается декларативным языком: от английского declaration - заявление. То есть, мы не описываем как что-то должно быть выполнено, мы четко ставим задачу - что именно должно быть выполнено, а программа считывает и выдает результат.
SQL работает с реляционными базами данных - и для лучшего понимания, что же это такое, давайте разобьем это понятие на отдельные составляющие.
- Данные - это набор определенных значений, которые структурируются и образуют таблицу: набор строк и столбцов. К примеру, информация о курсах SkillsUp.
Если мы увеличиваем количество столбцов, то делаем таблицу более подробной, а если строк - то увеличиваем количество данных.
- База данных (БД) - это определенным образом сгруппированные данные (к примеру, в таблицы).
- Реляционные БД получили свое название от английского слова relation - отношения, то есть они связаны между собой определенными отношениями. К примеру, мы можем сделать таблицу с названиями курсов и назвать ее “Перечень”:
И теперь можно изменить предыдущую таблицу, тем самым создав отношение между таблицей “Перечень” и “Информация о курсах SkillsUp”:
Итак, для чего нужен SQL? С помощью языка SQL пишутся команды-запросы, благодаря которым вы можете выполнять необходимые манипуляции с реляционными базами данных.
Операторы в SQL
Команды, в свою очередь, состоят из операторов, которые распределены по 4 основным языкам:
- DDL/Data Definition Language/Язык Описания Данных. Отвечает за работу со структурой данных: то есть, создание, удаление или изменение объектов баз данных - другими словами, работа с организацией внешнего вида данных. Сюда относятся операторы CREATE (создание), DROP (удаление) и ALTER (изменение).
- DML/Data Manipulation Language/Язык Манипуляции Данными. Необходим для работы непосредственно с данными. Сюда относим операторы INSERT (добавить), UPDATE (изменить), DELETE (удалить), SELECT (сделать выборку).
- DCL/Data Control Language/Язык управления доступом к данным. Когда в базе данных существуют разные типы пользователей, то важно выдавать разные доступы: чтобы начинающий тестировщик, к примеру, не удалил нам информацию за последний год. Для этого есть операторы GRANT (дает доступ), REVOKE (отзывает доступ) и DENY (выдает запрет).
- TCL/Transaction Control Language/Язык Управления Транзакциями. Здесь мы говорим о наборе команд, которые называются транзакция. И для ее успешного завершения необходимо правильное выполнение всех команд в требуемой последовательности. Сюда входят операторы BEGIN TRANSACTION (начало), COMMIT TRANSACTION (изменение команд), ROLLBACK TRANSACTION (откатывает транзакцию), SAVE TRANSACTION (точка сохранения внутри).
А что такое СУБД?
Еще один термин, который необходимо знать при изучении SQL. Мы с вами разобрались, что существуют базы данных, в которых хранятся данные, структурированные определенным образом. Но для создания и работы с ними необходима Система Управления Базами Данных - СУБД. Их можно разделить на SQL и NoSQL, то есть для работы с первыми мы используем язык SQL, а для работы со вторыми - язык графических элементов.
Примеры SQL-баз данных: Oracle, MySQL, Microsoft SQL Server, PostgreSQL.
Примеры NoSQL-баз данных: MongoDB, DB2, Microsoft Access, Cassandra, Redis, Elasticsearch.
SQL, СУБД, Базы Данных: все равно не понятно!
Давайте посмотрим немного под другим углом на примере, который привычен и понятен любому. База данных - это значения/информация, которая разделяется по типам и логическому назначению. Пример - больничная картотека. Пациенты разделены по отделениям больницы, в каждом из которых есть сортировка по ФИО + другая сопутствующая информация (дата рождения, диагноз и т.д.). 
СУБД - это инструмент для работы с базой. С его помощью можно читать данные из базы, обновлять их, удалять или добавлять новые. Можно менять настройки, модифицировать и т.д. То есть, поддержка, работа и развитие базы данных выполняется с помощью СУБД. Если больничная картотека - это база данных, то СУБД здесь - это работник регистратуры, который по твоему запросу с этой информацией что-то делает. И то, как ты общаешься с ним - это и есть SQL (если ты пишешь свой запрос на листочке в формате - ФИО + год рождения + диагноз) или же язык графических элементов (когда ты оформляешь просьбу своими словами).
Немного разобрались? А уже в следующей статье мы подробнее поговорим с вами о разных СУБД для SQL и разберемся, кому же будет полезно знание языка SQL.