Структура SQL
В отличие от реляционной алгебры, где были представлены только операции запросов к БД, SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие DDL — Data Definition Language — языку описания данных. Кроме того, язык содержит операторы, предназначенные для управления (администрирования ) БД. SQL содержит разделы, представленные в таблице 5.1:
Таблица 5.1. Операторы определения данных DDL
Оператор
|
Смысл
|
Действие
|
CREATE TABLE
|
Создать таблицу
|
Создает новую таблицу в БД
|
DROP TABLE
|
Удалить таблицу
|
Удаляет таблицу из БД
|
ALTER TABLE
|
Изменить таблицу
|
Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы
|
CREATE VIEW
|
Создать представление
|
Создает виртуальную таблицу, соответствующую некоторому SQL-запросу
|
ALTER VIEW
|
/Изменить представление
|
Изменяет ранее созданное представление
|
DROP VIEW
|
Удалить представление
|
Удаляет ранее созданное представление
|
CREATE INDEX
|
Создать индекс
|
Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс
|
DROP INDEX
|
Удалить индекс
|
Удаляет ранее созданный индекс
|
Таблица 5.2. Операторы манипулирования данными Data Manipulation Language (DML)
Оператор
|
Смысл
|
Действие
|
DELETE
|
Удалить строки
|
Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически он записан правильно
|
INSERT
|
Вставить строку
|
Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу
|
UPDATE
|
Обновить строку
|
Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации
|
Таблица 5.3. Язык запросов Data Query Language (DQL)
Оператор
|
Смысл
|
Действие
|
SELECT
|
Выбрать строки
|
Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу
|
Таблица 5.4. Средства управления транзакциями
Оператор
|
Смысл
|
Действие
|
COMMIT
|
Завершить транзакцию
|
Завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию
|
ROLLBACK
|
Откатить транзакцию
|
Отменить изменения, проведенные в ходе выполнения транзакции
|
'SAVEPOINT
|
Сохранить промежуточную точку выполнения транзакции
|
Сохранить промежуточное состояние БД, пометить его для того, чтобы можно было в дальнейшем к нему вернуться
|
Таблица 5.5. Средства администрирования данных
Оператор
|
Смысл
|
Действие
|
ALTER DATABASE
|
Изменить БД
|
Изменить набор основных объектов в базе данных, ограничений, касающихся всем базы данных
|
ALTER -DBAREA
|
Изменить область хранения БД
|
Изменить ранее созданную область храпения
|
Таблица 5.5 (продолжение)
Оператор
|
Смысл
|
Действие
|
ALTER PASSWORD
|
Изменить пароль
|
Изменить пароль для всей базы данных
|
CREATE DATABASE
|
Создать БД
|
Создать новую базу данных, определив основные параметры для нее
|
CREATE DBAREA
|
Создать область хранения
|
Создать новую область хранения и сделать ее доступной для размещения данных
|
DROP DATABASE
|
Удалить БД
|
Удалить существующую базу данных (только в том случае, когда вы имеете право выполнить это действие)
|
DROP DBAREA
|
Удалить область хранения БД
|
Удалить существующую область хранения (если в ней на настоящий момент не располагаются активные данные)
|
GRANT
|
Предоставить права
|
Предоставить нрава доступа на ряд действий над некоторым объектом БД
|
REVOKE
|
Лишить прав
|
Лишить прав доступа к некоторому объекту или некоторым действиям над объектом
|
Таблица 5.6. Программный SQL
Оператор
|
Смысл
|
Действие
| ||
DECLARE
|
Определяет курсор для запроса
|
Задает некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных
| ||
OPEN
|
Открыть курсор
|
Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД
| ||
FETCH
|
Считать строку из множества строк, определенных курсором
|
Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору
| ||
CLOSE
|
Закрыть курсор
|
Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору
| ||
PREPARE
|
Подготовить оператор SQL к динамическому выполнению
|
Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL
| ||
Оператор
|
Смысл
|
Действие
| ||
EXECUTE
|
Выполнить оператор SQL, ранее подготовленный к динамическому выполнению
|
Выполняет ранее подготовленный план запроса
| ||
В коммерческих СУБД набор основных операторов расширен. В большинство СУБД включены операторы определения и запуска хранимых процедур и операторы определения триггеров.