SQL - язык структурированных запросов
SQL (МФА: [ˈɛsˈkjuˈɛl]; аббр. от англ. Structured Query Language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
Является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.
Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
- создание в базе данных новой таблицы;
- добавление в таблицу новых записей;
- изменение записей;
- удаление записей;
- выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
- изменение структур таблиц.
Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.
При всех своих изменениях SQL остаётся самым распространённым лингвистическим средством для взаимодействия прикладного программного обеспечения с базами данных. В то же время современные СУБД, а также информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.
Элементы¶
Язык SQL представляет собой совокупность операторов, инструкций, вычисляемых функций.
Согласно общепринятому стилю программирования, операторы (и другие зарезервированные слова) в SQL обычно рекомендуется писать прописными буквами.
Операторы SQL делятся на:
операторы определения данных (Data Definition Language, DDL):¶
CREATE создаёт объект базы данных (саму базу, таблицу, представление, пользователя и так далее), ALTER изменяет объект, DROP удаляет объект;
операторы манипуляции данными (Data Manipulation Language, DML):¶
SELECT выбирает данные, удовлетворяющие заданным условиям, INSERT добавляет новые данные, UPDATE изменяет существующие данные, DELETE удаляет данные;
операторы определения доступа к данным (Data Control Language, DCL):¶
GRANT предоставляет пользователю (группе) разрешения на определённые операции с объектом, REVOKE отзывает ранее выданные разрешения, DENY задаёт запрет, имеющий приоритет над разрешением;
операторы управления транзакциями (Transaction Control Language, TCL):¶
COMMIT применяет транзакцию, ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции, SAVEPOINT делит транзакцию на более мелкие участки.