Описание основных операторов 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 является единственным средством общения всех категорий пользователей с реляционными базами данных.
