Язык запросов SQL уже не одно десятилетие входит в топ рейтинга языков программирования. По данным аналитиков Statista за 2024 год, 51% разработчиков чаще всего использовали SQL в своей работе.
Содержание:
- Что такое SQL
- Для чего нужен
- Базы данных
- Команды
- Операторы
- Главное
Что такое SQL
SQL (Structured Query Language) — это структурированный язык запросов, который используется для того, чтобы получать из баз данных (БД) необходимую информацию. Он предназначен для работы с реляционными базами данных — массивами информации, которые связаны между собой и представлены в виде таблиц. [1]
SQL был одним из первых коммерческих языков программирования. Его представили в 1970-е годы исследователи IBM Дональд Д. Чемберлин и Рэймонд Ф. Бойс. [2]
После тестирования SQL компания начала с его помощью разрабатывать коммерческие продукты, включая компьютерную платформу System/38, а также системы управления базами данных SQL/DS и IBM Db2. [3]
В 1980-е Американский национальный институт стандартов (ANSI) и Международная организация по стандартизации (ISO) приняли этот язык как стандарт. [4]
В наши дни SQL используют не только администраторы баз данных, но и аналитики, продуктовые маркетологи, разработчики и тестировщики, а также руководители, чтобы контролировать работу компании и в реальном времени.
Для чего нужен SQL
SQL-запросы представляют собой команды, записанные в виде операторов, и объединяются в программы. Эти программы позволяют пользователям добавлять, изменять или извлекать данные из таблиц БД.
SQL применяют:
- для изменения структур таблиц и индексов баз данных;
- добавления, обновления и удаления строк данных;
- запросов для поиска и управления данными;
- сортировки, фильтрации и объединения данных;
- защиты информации и распределения данных;
- извлечения подмножеств информации из реляционных систем управления базами данных (РСУБД) — эта информация может использоваться для обработки транзакций, аналитических приложений и в других сферах. [5]
Базы данных в SQL
База данных — это способ хранения и организации информации, с которой работает язык запросов SQL. Однако его используют только для взаимодействия с реляционными БД в виде множества связанных между собой таблиц. Упрощенный вариант такой базы — это таблицы Excel. В отличие от электронной таблицы, у столбцов и строк реляционной БД нет строгого положения, а каждый столбец диктует свой домен, то есть тип данных, к которому могут относиться его значения. Так, в одном столбце могут храниться только числа, а в другом — только строки. При этом каждая строка должна быть уникальной.
Из каких элементов состоит реляционная база данных:
- отношение — двумерное представление таблицы в виде столбцов и строк;
- атрибут — столбец таблицы с параметром;
- домен — допустимые значения для каждого атрибута;
- кортеж (строка или запись) — строка таблицы с порядковым номером и информацией об объекте;
- значение — элемент таблицы на пересечении столбцов и строк;
- ключ — самый важный столбец в таблице, который связывает таблицы между собой. Ключи бывают первичными (указывают на запись, к которой относятся), внешними (со ссылкой на первичный ключ из другой таблицы и их связки), а также родительскими (первичными ключами, на которые ссылаются внешние). [6]
Для работы с базами данных требуются СУБД — системы управления БД, которые принимают и обрабатывают запросы.
Основные виды СУБД
- Oracle — это одна из первых систем управления базами данных, которая появилась еще в 1977 году. Этот тип СУБД в SQL широко используется для онлайн-обработки транзакций и создания хранилищ данных. Она представляет собой кроссплатформенную систему, которая может работать на разных операционных системах, в том числе Windows, Linux, MacOS и мобильных ОС. Система используется, в частности, такими компаниями, как X (бывший Twitter), YouTube и Netflix.
- PostgreSQL — это объектно-ориентированная система, которая работает бесплатно и имеет открытый исходный код. Она обрабатывает данные как абстрактные объекты, включая JSON и XML, и работает со сложными структурами данных. Эту СУБД используют, например, в «Яндекс Почте» и Avito.
- MySQL — это более простая система, которая работает с сайтами и веб-приложениями. Изначально это был проект с открытым исходным кодом, но теперь СУБД принадлежит Oracle. Существует также версия MySQL, которую продолжает развивать сообщество, и она бесплатная. Обычно к этой СУБД обращаются DevOps-команды при развертывании облачных приложений для бизнес-решений, в том числе систем управления контентом сайтов (CMS), сайтов с возможностью регистрации пользователей, корпоративных систем CRM и многого другого.
- SQLite — легкая версия СУБД, которая подходит для обработки запросов на сайтах и в однопользовательских мобильных приложениях и играх. Преимущество такой системы — файловая структура, то есть база в SQLite состоит из одного файла, поэтому ее очень легко переносить. Эта СУБД часто используется в качестве формата файлов в приложениях для финансового анализа, каталогизации и т.д. SQLite не требует внешних настроек или инфраструктуры.
- Microsoft SQL Server (MSSQL) — одна из самых популярных СУБД для развертывания решений управления. Она интегрирована с Apache Spark и распределенной файловой системой Hadoop для управления и анализа больших данных, что позволяет создавать комплексные коммерческие решения. Также MSSQL интегрируется с облачными технологиями данных Microsoft, включая базы данных Azure SQL. [7]
Команды SQL
Чтобы управлять базами данных, требуется отправить СУБД запрос на языке SQL. Поскольку этот тип языка декларативный, то он требует, чтобы при написании кода прямо указывался ожидаемый результат выполнения.
Основные команды в SQL делятся на пять типов:
- DDL (Data Definition Language, язык описания данных) — операторы определения данных, которые работают с целыми таблицами. Эти операторы используются, когда нужно удалить или добавить таблицу. К ним относятся CREATE — создание объекта в базе данных, ALTER — изменение объекта, DROP — удаление объекта, RENAME — переименование существующего объекта в базе данных;
- DML (Data Manipulation Language, язык управления данными) — операторы манипуляции данными, которые работают с содержимым таблиц, в том числе со строками, с атрибутами и значениями. Эти операторы применяются, когда нужно изменить конкретное значение, заменить поле или удалить строку с данными. К ним относятся команды INSERT — добавление новых данных, UPDATE — изменение существующих данных, DELETE — удаление данных, EXPLAIN PLAN описание пути доступа к данным;
- DQL (Data Query Language, язык запросов к данным) — это операторы для выполнения запросов к данным в БД, чтобы извлечь их для выполнения операций. При этом результат операций компилируется во временную таблицу, которая отображается программой. К этим операторам относится команда SELECT;
- DCL (Data Control Language, язык контроля данных) — операторы определения доступа к данным, которые ограничивают или открывают доступ к БД разным специалистам. Это команды GRANT — предоставление доступа к объекту и REVOKE — отзыв разрешения;
- TCL (Transaction Control Language, язык контроля транзакций) — это операторы управления транзакциями или наборами команд, которые выполняются поочередно. Когда все команды выполнены, транзакция считается успешной, а в случае неудачи на одном из этапов процесс откатывается, отменяя уже выполненные шаги. Этот механизм используется при онлайн-оплате, когда банк просит сначала ввести сумму, потом указать получателя, а уже после проверки данных позволяет ввести код подтверждения оплаты. Это команды BEGIN TRANSACTION — начало транзакции, COMMIT — изменение команд внутри транзакции, ROLLBACK — откат транзакции и SAVE — промежуточная точка сохранения внутри транзакции. [8]
Операторы SQL: как работать с языком программирования
Запросы в SQL похожи на обычные предложения на английском языке. В них используются операторы — определенные слова или символы, которые нужны для выполнения конкретной операции, например для сортировки по определенному признаку.
Операторы SQL можно классифицировать по типу выполняемой операции:
- арифметические — для выполнения математических операций с числовыми типами данных (+, -, *, %);
- операторы сравнения — для сравнения значений одного выражения с другими выражениями (=, <, >);
- логические — для объединения или манипулирования условиями в SQL-запросах и данными на основе заданных критериев (AND, OR, NOT);
- побитовые — для выполнения операций над двоичными значениями с преобразованием этих значений в единицы и нули (&, ^, ~);
- составные — изменяют значение столбца и сохраняют результат в том же столбце за один шаг (+=, /=, &=);
- специальные — выполняют определенные функции, такие как фильтрация данных на основе диапазона, проверка существования значения и сравнение наборов значений (ALL, ANY, EXIST) [9].
Так, можно запросить у базы данных выборку значений из определенного столбца, которые будут больше указанного. Для этого нужно ввести команду:
SELECT price
FROM products
WHERE price > 100;
Она будет переводиться так: «Выбери значения из столбца price таблицы products, которые больше 100». Символ «;» означает конец команды.
Все системы для работы с SQL предлагают встроенный редактор запросов, показывают результат запросов и список таблиц, которые используются для обработки.
Главное об SQL
- SQL — это язык программирования, предназначенный специально для работы с реляционными базами данных.
- Реляционные базы данных — это таблицы со столбцами и строками, связанные между собой специальными ключами.
- Запросы на языке SQL позволяют добавлять данные в таблицы, изменять их, удалять таблицы, сортировать и объединять данные.
- Для работы с запросами используются системы управления базами данных. Они бывают открытыми и коммерческими.
- Команды в SQL делятся на пять типов в зависимости от типа операций.
- Запросы в SQL состоят из операторов и выглядят как полноценные предложения на английском языке.
Читайте также:
➤ Подписывайтесь на телеграм-канал «РБК Трендов» — будьте в курсе последних тенденций в науке, бизнесе, обществе и технологиях.