SQL (язык программирования)

SQL (аббревиатура от англ. Structured Query Language – язык структурированных запросов), декларативный язык программирования для манипулирования данными (описания, модификации и извлечения данных) в реляционных базах данных (БД). Наиболее распространённый язык, применяемым приложениями БД.

Язык SQL разработан компанией IBM в 1970-х гг. для работы с базой данных System R. Изначально назывался SEQUEL. Компания Oracle (ранее Relational Software) стала первым поставщиком, предложившим коммерческую систему управления базами данных (СУБД), поддерживающую работу с SQL.

SQL был принят в качестве стандарта Национальным институтом стандартов США (ANSI) в 1986 г. как SQL-86, затем Международной организацией по стандартизации (ISO) – в 1987 г. Позднее SQL неоднократно изменяли. Известны версии стандарта: SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011, SQL:2016, SQL:2019–2020, SQL:2023.

Реализации SQL от разных производителей не являются последовательными и не всегда полностью соответствуют стандартам. В частности, чувствительность к регистру в синтаксисе даты и времени, конкатенации строк и сравнениях у разных производителей различна. Например, СУБД PostgreSQL преобразует имена без кавычек в нижний регистр, что противоречит стандарту SQL, который гласит, что имена без кавычек должны преобразовываться в верхний регистр. В результате программный код SQL не всегда полностью соответствует стандартам и требует модификации для перенесения между СУБД.

Важные особенности и характеристики языка

Команды (операторы) языка SQL разбиваются на следующие подмножества:

  1. Язык определения данных (англ. Data Definition Language – DDL) – с помощью операторов, входящих в DDL, определяется структура БД и её объекты. Например, оператор CREATE используется для создания объектов БД.
  2. Язык управления данными (англ. Data Manipulation Language – DML) – это операторы по извлечению данных, находящихся в реляционных БД. Так, оператор INSERT используется для создания новой записи в БД.
  3. Язык определения доступа к данным (англ. Data Control Language – DCL) включает в себя операторы, нужные для управления пользовательским доступом к БД. Например, оператор GRANT разрешает определённым приложениям манипулировать таблицами.
  4. Язык управления транзакциями (англ. Transaction Control Language – TCL) используется для автоматического внесения изменений в БД. Например, оператор ROLLBACK отменяет ошибочную транзакцию.

Стандарт SQL определяет следующие типы данных: 1) предопределённые типы данных, которые внутренне поддерживаются реализацией. К ним относятся двоичные типы, точные числовые типы, числовые типы с плавающей запятой, логические значения, XML и JSON; 2) к составным типам относятся ARRAY, MULTISET, REF и ROW; 3) пользовательские типы сравнимы с классами объектного языка программирования со своими собственными конструкторами, методами, наследованием, перегрузкой, перезаписью, интерфейсами и т. д.

К достоинствам языка SQL относятся:

  1. Стандартизированность – использование SQL в программных приложениях стандартизировано международными организациями.
  2. Возможность создания интерактивных запросов: SQL предоставляет пользователям мгновенный доступ к данным, а в интерактивном режиме результаты запроса можно получить за короткое время, не прибегая к написанию сложных программ.
  3. Поддержка клиент-серверной архитектуры: SQL является одним из лучших решений для реализации приложений на архитектуре «клиент – сервер». SQL служит связующим звеном между клиентской системой, взаимодействующей с пользователем, и управляющей БД серверной системой, тем самым позволяя каждой из них сосредоточиться на выполнении соответствующих функций.
  4. Независимость от конкретной СУБД: реляционные СУБД в целом придерживаются той или иной версии стандарта SQL, что позволяет переносить базы данных между различными реляционными СУБД с небольшим количеством специфических для конкретной СУБД изменений.
  5. Реляционная основа языка: SQL является языком реляционных БД, поэтому получил широкое распространение после того, как реляционная модель данных обрела популярность. Табличная структура реляционной БД очень проста, а потому язык SQL легко изучить, хотя в большей степени он является инструментом программиста, чем конечного пользователя БД.

Вместе с тем создатели реляционной модели данных Э. Кодд и К. Дейт указывают на то, что SQL не вполне соответствует реляционной модели данных (The Third Manifesto).

Литература

  • Фиайли К. SQL. – Москва : ДМК Пресс, 2024. – (Quick Start).
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru