Что такое 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
- Изменение данных
- Управление представлениями
- Управление индексами
- Управление триггерами
- Агрегатные функции