SQL (StructuredQueryLanguage) - стандартный язык запросов по работе с реляционными БД

Страницы работы

Фрагмент текста работы

Введение

SQL (StructuredQueryLanguage) - Структурированный Язык Запросов.  - стандартный язык запросов по работе с реляционными БД.

Первый международный стандарт языка SQL был принят в 1989 г. (далее мы будем называть его SQL/89 или SQL1). Иногда стандпрт SQL1 также называют стандартом ANSI/ISO и   подавляющее большинство доступных на рынке СУБД поддерживают  этот стандарт полностью.

В конце 1992 г. был принят новый международный стандарт языка SQL (который в дальнейшем будем называть SQL/92 или SQL2). И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД вносят изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.

Последний стандарт по языку SQL  был выпущен в 1996 г. Он назван SQL3.

SQL нельзя в полной мере отнести к традиционным языкам программирования: он не содержит традиционные операторы управления ходом выполнения программы, операторы описания типов и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т.д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

1.  Структура SQL.

 SQL содержит следующие разделы:

1.  Операторы определения данных DDL (Data definition language).

 Оператор

Смысл
Действие

CREATE TABLE

Создать таблицу

Создает новую таблицу в БД

DROP TABLE

Удалить таблицу

Удаляет таблицу из БД

ALTER TABLE

 Изменить таблицу

Изменяет структуру существующей таблицы

CREATE VIEW

Создать представление

 Создает виртуальную таблицу, т.е. таблицу, которая на самом деле не существует, но моделируется с использованием этого оператора.

ALTER VIEW

Изменить представление

Изменяет структуру или содержание виртуальной таблицы

DROP VIEW

Удалить представление

Удаляет описание виртуальной таблицы. Саму таблицу удалять не надо,т.к. она на самом деле и не существует.

CREATE INDEX

Создать индекс

Создает специальную физическую структуру, называемую индексом, которая обеспечивает ускорение доступа к данным

DROP INDEX

Удалить индекс

Удаляет созданную структуру

CREATE SYNONYM

Создать синоним

DROP SYNONYM

Удалить синоним

2.   Операторы  манипулирования данными Data Manipulation Language (DML)

 DELETE

удалить строки

Удаляет строки из таблицы

INSERT

вставить строку

Вставляет строку в таблицу

UPDATE

обновить строку

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

3.   Язык запросов Data Query Language (DQL)

SELECT

Выбрать строки

Выбирает строки  из одной или нескольких таблиц по заданному критерию отбора и формирует в качестве результата новую виртуальную таблицу

4.   Средства управления транзакциями

COMMIT

Завершить транзакцию

Сохраняет все изменения в БД и делает невозможным  откат транзакции и возвращение к старому состоянию БД. 

ROLLBACK

откатить транзакцию

Отменяет все изменения, сделанные в базе данных и  возвращает БД в исходное состояние

SAVEPOINT

Сохранить промежуточную точку выполнения транзакции

 Дает возможность вернуться к изменениям, сделанным до точки сохранения, протгнорировав все изменения, сделанные после точки сохранения танзакции.

5.   Средства администрирования данных

ALTER DATABASE

Изменить БД

ALTER DBAREA

Изменить область хранения БД

ALTER PASSWORD

Изменить пароль

CREATE DATABASE

Создать БД

CREATE DBAREA

Создать область хранения

DROP DATABASE

Удалить БД

DROP DBAREA

Удалить область размещения базы данных

GRANT

Предоставить права доступа

REVOKE

Лишить прав доступа

Программный SQL

DECLARE CURSOR

Определяет курсор для запроса

OPEN

Открыть курсор

FETCH

Считать строку из множества строк, определенных курсором

CLOSE

Закрыть курсор

PREPARE

Подготовить оператор SQL к динамическому выполнению

EXECUTE

Выполнить динамический оператор

2. Типы данных

В языке SQL/89 поддерживаются следующие типы данных: CHARACTER, NUMERIC, DECIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION. Эти типы данных классифицируются на типы строк символов, точных чисел и приблизительных чисел.

          В стандарте SQL92 добавлены следующие типы данных:

VARCHAR(n)  - строки символов переменной длины

NCHAR(N) – строки локализованных символов постоянной длины

NCHAR VARYING(n) - строки локализованных символов переменной длины

BIT(n) - строка битов постоянной длины

BIT VARYING(n) - строка битов переменной длины

DATE       календарная дата

TIMESTAMP(точность)    дата и время

INTERVAL    временной интервал

3.   Оператор выбора SELECT

Select  -  единственный оператор поиска, который заменяет все операции реляционной алгебры.

Синтаксическая диаграмма опертора SELECT изображена на рис.1


Здесь ключевое слово ALL означает, что в результирующий набор строк включаются все строки удовлетворяющие условим запроса. Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, т.е. дубликаты строк результата не включаются в набор. Если не стоит никакое ключевое слово, то  такая ситуация  интерпретируется как наличие ключевого слова ALL.

          Символ * означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса.

          В части FROM задается перечень исходных отношений (таблиц) запроса.

          В части WHERE задаются условия отбора срок результата или условия соединиения кортежей исходных таблиц.

В частиGROUP BY  задается  список полей группировки.

В части   HAVING   задаются предикаты-условия, накладываемые на каждую группу.

В части ORDER BY задается список полей упорядочения результата.

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

·  предикат сравнения с образцом LIKE и NOT LIKE

·  предикат EXIST и NOT EXIST.

·  предикаты сравнения { =, <>, >,<,>=,<=,}. Синтаксическая диаграмма предикатов сравнения представлена на рис.2


·  предикат Between -  принимает значение между а1 и а2 включительно.

·  предикат Not Between  - не принимает значение между  а1 и а2


Синтаксическая диаграмма предиката Between представлена на рис.3

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

· 


предикат IN  - входит в множество / не входит в множество.


Предикат  IN или NOT IN может также использоваться и для сравнения проверяемого выражения с подзапросом, в этом случае синтаксическая диаграмма изображена на рис. 5.

Предикат IN истинен тогда, когда значение атрибута, заданного

Похожие материалы

Информация о работе