Перейти к содержанию

Что такое SQL?

SQL (от англ. Structured Query Language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

Note

Является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.

Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например: индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.

SQL позволяет:

  • получать доступ к данным в системах управления РБД
  • описывать данные (их структуру)
  • определять данные в БД и управлять ими
  • взаимодействовать с другими языками через модули SQL, библиотеки и предваритальные компиляторы
  • создавать и удалять БД и таблицы
  • создавать представления, хранимые процедуры (stored procedures) и функции в БД
  • устанавливать разрешения на доступ к таблицам, процедурам и представлениям

Процесс SQL

При выполнении любой SQL-команды в любой RDBMS (Relational Database Management System — система управления БД, например: PostgreSQL, MySQL, MSSQL, SQLite и др.) система определяет наилучший способ выполнения запроса, а движок SQL определяет способ интерпретации задачи.

В данном процессе участвует несколького компонентов:

  • диспетчер запросов (Query Dispatcher)
  • движок оптимизации (Optimization Engines)
  • классический движок запросов (Classic Query Engine)
  • движок запросов SQL (SQL Query Engine) и т.д.

Классический движок обрабатывает все не-SQL-запросы, а движок SQL-запросов не обрабатывает логические файлы.

Команды SQL

Язык SQL представляет собой совокупность операторов, инструкций, вычисляемых функций.

Стандартными командами для взаимодействия с РБД являются CREATE, SELECT, INSERT, UPDATE, DELETE и DROP. Эти команды могут быть классифицированы следующим образом:

DDL — язык определения данных (Data Definition Language)

  • CREATE - создаёт объект базы данных (саму базу, таблицу, представление, пользователя и так далее)
  • ALTER - изменяет объект
  • DROP - удаляет объект

DML — язык изменения данных (Data Manipulation Language)

  • SELECT - выбирает данные, удовлетворяющие заданным условиям
  • INSERT - добавляет новые данные
  • UPDATE - изменяет существующие данные
  • DELETE - удаляет данные

DCL — язык управления данными (Data Control Language)

  • GRANT - предоставляет пользователю (группе) разрешения на определённые операции с объектом
  • REVOKE - отзывает ранее выданные разрешения
  • DENY - задаёт запрет, имеющий приоритет над разрешением

TCL - операторы управления транзакциями (Transaction Control Language)

  • COMMIT - применяет транзакцию
  • ROLLBACK - откатывает все изменения, сделанные в контексте текущей транзакции
  • SAVEPOINT - делит транзакцию на более мелкие участки.

Обратите внимание

Использование верхнего регистра в названиях команд SQL — это всего лишь соглашение, большинство СУБД нечувствительны к регистру. Тем не менее, форма записи инструкций, когда названия команд пишутся большими буквами, а названия таблиц, колонок и др. — маленькими, позволяет быстро определять назначение производимой с данными операции

  • SQL

  • Запрос данных из таблицы

  • Запрос из нескольких таблиц
  • Использование операторов SQL
  • Управляющие таблицы
  • Использование ограничений SQL
  • Изменение данных
  • Управление представлениями
  • Управление индексами
  • Управление триггерами
  • Агрегатные функции