Основы проектирования реляционных баз данных

Описание основных операторов SQL


SQL состоит из набора команд манипулирования данными в реляционной базе данных, которые позволяют создавать объекты реляционной базы данных, модифицировать данные в таблицах (вставлять, удалять, исправлять), изменять схемы отношений базы данных, выполнять вычисления над данными, делать выборки из базы данных, поддерживать безопасность и целостность данных.

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

  • команды определения данных (DDL - Data Defininion Language);
  • команды манипулирования данными (DML - Data Manipulation Language);
  • команды выборки данных (DQL - Data Query Language);
  • команды управления транзакциями;
  • команды управления данными.

При выполнении каждая команда SQL проходит четыре фазы обработки:

  • фаза синтаксического разбора, которая включает проверку синтаксиса команды, проверку имен таблиц и колонок в базе данных, а также подготовку исходных данных для оптимизатора;
  • фаза оптимизации, которая включает подстановку действительных имен таблиц и колонок базы данных в представление, идентификацию возможных вариантов выполнения команды, определение стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики;
  • фаза генерации исполняемого кода, которая включает построение выполняемого кода команды;
  • фаза выполнения команды, которая включает выполнение кода команды.

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

Таблица 8.1 содержит список команд SQL в соответствии с принятым стандартом, за исключением некоторых практически не используемых в диалектах команд.
Жирным шрифтом выделены команды диалекта SQL СУБД Oracle.


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

Содержание раздела