Описание основных операторов SQL
SQL состоит из набора команд манипулирования данными в реляционной базе данных, которые позволяют создавать объекты реляционной базы данных, модифицировать данные в таблицах (вставлять, удалять, исправлять), изменять схемы отношений базы данных, выполнять вычисления над данными, делать выборки из базы данных, поддерживать безопасность и целостность данных.
Весь набор команд SQL можно разбить на следующие группы:
- команды определения данных (DDL - Data Defininion Language);
- команды манипулирования данными (DML - Data Manipulation Language);
- команды выборки данных (DQL - Data Query Language);
- команды управления транзакциями;
- команды управления данными.
При выполнении каждая команда SQL проходит четыре фазы обработки:
- фаза синтаксического разбора, которая включает проверку синтаксиса команды, проверку имен таблиц и колонок в базе данных, а также подготовку исходных данных для оптимизатора;
- фаза оптимизации, которая включает подстановку действительных имен таблиц и колонок базы данных в представление, идентификацию возможных вариантов выполнения команды, определение стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики;
- фаза генерации исполняемого кода, которая включает построение выполняемого кода команды;
- фаза выполнения команды, которая включает выполнение кода команды.
В настоящее время оптимизатор является составной частью любой промышленной реализации SQL. Работа оптимизатора основана на сборе статистики о выполняемых командах и выполнении эквивалентных алгебраических преобразований с отношениями базы данных. Такая статистика сохраняется в системном каталоге базы данных. Системный каталог является словарем данных для каждой базы данных и содержит информацию о таблицах, представлениях, индексах, колонках, пользователях и их привилегиях доступа. Каждая база данных имеет свой системный каталог, который представляет совокупность предопределенных таблиц базы данных.
Таблица 8.1 содержит список команд SQL в соответствии с принятым стандартом, за исключением некоторых практически не используемых в диалектах команд.
Жирным шрифтом выделены команды диалекта SQL СУБД Oracle.
Команды определения данных объектов | |
ALTER TABLE | Изменяет описание таблицы (схему отношения) |
CREATE EVENT | Создает событие таймера в базе данных |
CREATE INDEX | Создает индекс для таблицы |
CREATE SEQUENCE | Создает последовательность |
CREATE TABLE | Определяет таблицу |
CREATE TABLESPACE | Создает табличное пространство |
CREATE TRIGGER | Создает триггер в базе данных |
CREATE VIEW | Определяет представление на таблицах |
DROP INDEX | Физически удаляет индекс из баз данных |
DROP SEQUENCE | Удаляет последовательность |
DROP TABLE | Физически удаляет таблицу из базы данных |
DROP TABLESPACE | Удаляет табличное пространство |
DROP VIEW | Удаляет представление |
Команды манипулирвания данными | |
DELETE | Удаляет одну или более строк из таблицы базы данных |
INSERT | Вставляет одну или более строк в таблицу баззы данных |
UPDATE | Обновляет значения колонок в таблице базыы данных |
Команды выборки данных | |
SELECT | Выполняет запрос на выборку данных из таблиц и представлений |
UNION | Объединяет в одной выборке результаты выполнения двух или более команд SELECT |
Команды управления транзакциями | |
COMMIT | Завершает транзакцию и физически актуалищирует состояние базы данных |
ROLLBACK | Завершает транзакцию и возвращает текущее состояние базы данных на момент последней завершенной транзакции и контрольной точки |
SAVEPOINT | Назначает контрольную точку внутри транзакции |
Команды управления данными | |
ALTER DATABASE | Изменяет группы хранения или журналы транзакций |
ALTER DBAREA | Изменяет размер областей хранения базы данных |
ALTER PASSWORD | Изменяет пароль для доступа к базе данных |
ALTER STOGROUP | Изменяет состав областей хранения в группе хранения |
CHECK DATABASE | Проверяет целостность базы данных |
CHECK INDEX | Проверяет целостность индекса |
CHECK TABLE | Проверяет целостность таблицы и индекса |
CREATE DATABASE | Физически создает базу данных |
CREATE DBAREA | Создает область хранения базы данных |
CREATE STOGROUP | Создает группу хранения |
CREATE SYSNONYM | Создает синоним для таблицы или представления |
DEINSTALL DATABASE | Делает базу данныхх недоступной пользователям вфычислительной сети |
DROP DATABASE | Физически удаляет базы данных |
DROP DBAREA | Физически удаляет область хранения данных |
DROP STOGROUP | Удаляет группу хранения |
GRANT | Определяет привелеги пользователей и разграничение доступа к базе данных |
INSTALL DATABASE | Делает базу данных доступной пользователям вычислительной сети |
LOCK DATABASE | Блокирует текущую активную базу данных |
REVOKE | Отменяет привелегии пользователей и разграничения доступа к базе данных |
SET DEFAULT STOGROUP | Определяет группу хранения по умолчанию |
UNLOCK DATABASE | Деблокирует текущую активную базу данных |
UPDATE STATISTIK | Обновляет статистику для базы данных |
Другие команды | |
COMMENT ON | Размещает в системном каталоге комментарии к описанию объектов БД |
CREATE SYNONYM | Определяет в системном каталоге альтернативные имена для таблиц и представлений БД |
DROP SYNONYM | Удаляет из системного каталого альтернативные именя для таблиц и представлений БД |
LABEL | Изменяет метки системных описаний |
ROWCOUNT | Вычисляет число строк в таблице БД |
Набор команд SQL, перечисленный в таблице, не является полным. Этот список приведен, чтобы вы составили впечатление о возможностях SQL в целом. Для получения полного списка команд следует обратиться к соответствующему руководству для конкретной СУБД. Следует помнить, что SQL является единственным средством общения всех категорий пользователей с реляционными базами данных.