Группы операторов. Типы данных
Язык реляционных БД SQL был разработан в середине 70-х годов в рамках исследовательского проекта экспериментальной реляционной СУБД System R от компании IBM. Данный проект включал в себя разработку реляционной СУБД и языка SEQUEL (Structured English Query Language). Данное название только частично отражало суть языка. Язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционной БД, фактически он уже являлся полноценным языком реляционной БД и содержал помимо операторов формулирования запросов и манипулирования БД, следующие средства:
· определения схемы БД и манипулирования ей;
· определения ограничений целостности и триггеров;
· создания представлений БД;
· определения структур физического уровня, поддерживающих эффективное выполнение запросов;
· автоматизации доступа к таблицам и их полям;
· поддержки точек сохранения транзакции и откатов.
В конце 70-х годов корпорацией Oracle был выпущен модифицированный вариант языка SEQUEL, получивший название SQL. В 1983 г. компания IBM выпустила SQL в составе СУБД DB2.
Язык SQL был настолько удачен, что несколько позже, в 1986 г. Американский национальный институт стандартизации (ANSI) принял его в качестве стандарта. После этого стандарт уже пересматривался несколько раз, в 1989, 1992 г. в результате в язык SQL были внесены некоторые незначительные изменения. В настоящее время наиболее распространенным стандартом является SQL-92.
Типы команд SQL
Команды языка SQL, условно, можно разделить на группы:
· DCL (Data Control Language) – язык управления данными. Команды языка предназначены для управления доступом к информации, хранящейся в БД. (таблица 19.1);
· DDL (Data Definition Language) – язык определения данных. Его команды используются для создания и изменения структуры объектов БД (таблица 19.2);
· DML (Data Manipulation Language) – язык манипулирования данными. Используется для манипулирования информацией, содержащейся в объектах БД (таблица 19.3);
· DQL (Data Query Language) – язык запросов к данным. Наиболее часто используемая группа, состоящая всего из одного оператора SELECT, предназначенного для формирования запросов к БД (таблица 19.4);
· TCL (Transaction Control Language) – язык управления транзакциями (таблица 19.5);
· CCL (Cursor Control Language) – язык управления курсором (таблица 19.6);
Язык SQL является непроцедурным, но, тем не менее, в среде SQL Server предусмотрен ряд различных управляющих конструкций, без которых невозможно написание эффективных алгоритмов, например, операторные скобки, условия циклы и т.д.
Таблица 19.1- Средства управления данными DCL
Оператор | Описание |
ALTER DATABASE | Изменение набора основных объектов БД |
ALTER DBAREA | Изменение существующей области хранения БД |
ALTER PASSWORD | Изменяет пароль для всей базы данных |
CREATE DATABASE | Создает новую базу данных и определяет ее основные параметры |
CREATE DBAREA | Создает область хранения и делает ее доступной для размещения данных |
DROP DATABASE | Удаляет БД (при наличии прав) |
DROP DBAREA | Удаляет область хранения если в ней не располагаются активные данные |
GRANT | Предоставляет права доступа на действия с объектами БД |
REVOKE | Лишает прав доступа к объектам БД или над действиями с объектами БД |
Таблица 19.2 - Операторы определения данных DDL
Оператор | Описание |
CREATE TABLE | Создает новую таблицу в БД |
DROP TABLE | Удаляет существующую таблицу из БД |
ALTER TABLE | Изменяет структуру таблицы или ограничения таблицы |
CREATE VIEW | Создает представление (виртуальную таблицу) соответствующую некоторому SQL запросу |
DROP VIEW | Удаляет ранее созданное представление |
ALTER VIEW | Изменяет существующее представление |
CREATE INDEX | Создает индекс для некоторой таблицы |
DROP INDEX | Удаляет существующий индекс |
Таблица 19.3 - Операторы манипулирования данными DML
Оператор | Описание |
DELETE | Удаляет одну или несколько записей согласно условиям отбора. Применение оператора согласуется с принципами поддержки ссылочной целостности, поэтому оператор не всегда выполняется корректно, даже если синтаксически записан правильно |
INSERT | Вставляет одну или несколько записей, согласно условию отбора, в базовую таблицу |
UPDATE | Обновляет значения одного или нескольких полей в одной или нескольких записях, соответствующих условиям отбора |
Таблица 19.4 - Язык запросов к данным DQL
Оператор | Описание |
SELECT | Оператор, полностью реализующий возможности реляционной алгебры. Позволяет сформировать результирующие отношение, соответствующее запросу |
Таблица 19.5- Средства управления транзакциями TCL
Оператор | Описание |
COMMIT | Завершает транзакцию (комплексную взаимосвязанную обработку информации, объединенную в транзакции) |
ROLLBACK | Откат транзакции (отмена изменений, проведенных в ходе выполнения транзакции) |
SAVEPOINT | Сохраняет промежуточную точку (состояние) БД, для реализации возможности отката |
Таблица 19.6- Средства управления курсором СCL
Оператор | Описание |
DECLARE | Определяет курсор для запроса |
OPEN | Открывает курсор (Формирует виртуальный НД, соответствующий описанию курсора) |
FETCH | Считывает очередную строку из виртуального НД открытого курсора |
CLOSE | Закрывает открытый курсор |
PREPARE | Готовит оператор SQL к динамическому выполнению |
EXECUTE | Выполняет оператор SQL, ранее подготовленный к динамическому выполнению |
Дата добавления: 2015-11-18; просмотров: 1394;