Язык запросов

База данных бесполезна, если отсутствуют средства доступа к информации в ней. Для получения информации из БД пользователи направляют
СУБД-запросы. СУБД обрабатывает их и отправляет результаты обработки пользователям. Запросы формулируются на специальном «языке запросов». Фактическим стандартом такого языка для современных реляционных СУБД стал SQL (Structured Query Language – структурный язык запросов).

Этот язык имеет официальный стандарт, последняя версия которого была принята ANSI и ISO в 1992 году. Большинство разработчиков СУБД придерживаются этого стандарта. Тем не менее они часто расширяют его для реализации специальных возможностей обработки данных. SQL – это не язык программирования в традиционном смысле. Это язык запросов к базе данных. С его помощью можно сформулировать, какие данные требуется получить, но невозможно определить, как это следует сделать. На SQL не пишутся программы – в нем отсутствуют многие операторы процедурных языков программирования, например, операторы проверки условия (if...then...else), операторы циклов и др.

В составе SQL могут быть выделены следующие группы инструкций:

• язык описания данных – DDL (Data Definition Language);

• язык манипулирования данными – DML (Data Manipulation Language);

• язык управления транзакциями.

Инструкции DDL (табл. 2.1) предназначены для создания, изменения и удаления объектов базы данных.

Таблица 2.1. Инструкции языка определения данных (DDL)

Инструкция Назначение
CREATE Создание новых объектов (таблиц, полей, индексов и т. д.)
DROP Удаление объектов
ALTER Изменение объектов

Инструкции DML (табл. 2.2) позволяют выбирать данные из таблиц, а также добавлять, удалять и изменять их.

 

Таблица 2.2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение
SELECT Выбрать данные из БД
INSERT Добавить данные в БД
UPDATE Обновить данные в БД
DELETE Удалить данные из БД

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

Третьей составной частью SQL является язык управления транзакциями. Транзакция – это логически завершенная единица работы, содержащая одну или более элементарных операций обработки данных. Все действия, составляющие транзакцию, должны либо выполниться полностью, либо полностью не выполниться. Инструкции языка управления транзакциями приведены
в табл. 2.3.

Таблица 2.3. Инструкции языка управления транзакциями

Инструкция Назначение
COMMIT Зафиксировать текущую транзакцию
SAVEPOINT Начало транзакции
ROLLBACK Прервать текущую транзакцию

В большинстве СУБД элементарные команды, составляющие тело транзакции, выполняются над некоторой буферной копией данных, и только если их удается успешно довести до конца, происходит окончательное обновление основной базы. Транзакция начинается от точки сохранения, задаваемой инструкцией SAVEPOINT, и может быть завершена по команде COMMIT или прервана по команде ROLLBACK (откат). Также в современных системах управления данными предусмотрены средства автоматического отката транзакций при возникновении системных сбоев. Таким образом, механизм управления транзакциями является важнейшим инструментом поддержания целостности
данных.