Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системы управления базами данных.doc
Скачиваний:
2
Добавлен:
16.04.2019
Размер:
1.97 Mб
Скачать

1.4. Язык sql

В разработанной Коддом реляционной модели были определены как требования к организации таблиц, содержащих данные, так и язык, позволяющий работать с ними. Впоследствии этот язык получил название SQL (Structured Query Language - структурированный язык запросов). SQL был впервые реализован фирмой I в начале 70-х годов двадцатого века под названием Structures English Query Language (SEQUEL). Он был ориентирован на управление прототипом реляционной базы данных IBM-System R. В дальнейшем SQL стал стандартом de facto языка работы с реляционными базами данных. Этот его статус был впервые зафиксирован в 1986 году Американским национальным институтом стандартов (ANSI). Другими достаточно известными стандартами SQL стали стандарты ANSI SQL-92 ISO SQL-92, X/Open. В составе SQL могут быть выделены следующие группы инструкций:

- язык описания данных - DDL (Data Definition Language); - язык манипулирования данными - DML (Data Manipulation Language); - язык управления транзакциями. Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 1.

Таблица 1. Инструкции языка определения данных (DDL)

Инструкция

Назначение

CREATE

Создание новых объектов (таблиц, полей, индексов и т. д.)

DROP

Удаление объектов

ALTER

Изменение объектов

Например, нам необходимо создать таблицу, содержащую данные по каталогу фирм, каждая фирма в котором характеризуется кодом, наименованием, MCCTOJV расположения штаб-квартиры, размером уставного фонда. Данной операции со ответствует SQL-выражение

CREATE TABLE Фирмы ( КодФирмы TEXT (5), НазвФирмы TEXT (30), АдресФирмы TEXT (40), УстФонд DOUBLE );

Отметим, что допустимые имена полей создаваемой таблицы и типы содержащихся в них данных могут варьироваться для различных версий и диалектов SQL Если нам понадобится изменить структуру таблицы Фирмы - допустим, добавит! к ней еще одну колонку с фамилией директора, то сделать это можно с помощью SQL-инструкции:

ALTER TABLE Фирмы ADD COLUMN Директор TEXT.(30);

а выражение, дающее Команду на уничтожение таблицы, будет выглядеть так:

DROP TABLE Фирмы;

Инструкции DML (табл. 2) позволяют выбирать данные из таблиц, а также добавлять, удалять и изменять их.

Таблица 2. Инструкции языка манипулирования данными (DML)

Инструкция

Назначение

SELECT

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

INSERT

Добавление записей в таблицы базы данных

UPDATE

Изменение значений отдельных записей и полей

DELETE

Удаление записей из базы данных

SELECT - команда на выборку записей из базы данных - является наиболее часто используемой SQL-инструкцией. Сфера данных, которыми она манипулирует, определяется с помощью специальных предложений. Перечень основных предложений языка SQL приведен в табл. 3.

Таблица 3. Основные предложения языка SQL

Инструкция

Назначение

FROM

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

WHERE

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

GROUP BY

Определяет, что выбираемые записи должны быть сгруппированы

HAVING

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

ORDER BY

Специфицирует порядок сортировки записей

Примером простейшего применения инструкции SELECT может служить команда на выборку всех данных из таблицы Фирмы:

SELECT * FROM Фирмы;

Однако, вообще говоря, данная инструкция представляет собой весьма мощный инструмент манипуляции с содержимым баз данных. Так, выражение

SELECT Int([УстФонд]/500)*500 AS Диапазон, Count(КодФирмы) AS ЧислоФирм FROM Фирмы GROUP BY Int([УстФонд]/500)*500;

задает команду на вывод данных о распределении значений уставных фондов фирм по интервалам длиной 500 денежных единиц (д. е.), то есть сколько фирм имеют уставный фонд менее 500 д. е., от 500 до 1000 д. е. и т. д. Третьей составной частью SQL является язык управления транзакциями. Транзакция - это логически завершенная единица работы, содержащая одну или более элементарных операций обработки данных. Все действия, составляющие транзакцию, должны либо выполниться полностью, либо полностью не выполниться. Инструкции языка управления транзакциями приведены в табл. 4.

Таблица 4. Инструкции языка управления транзакциями

Инструкция

Назначение

COMMIT

Фиксация в базе данных всех изменений, сделанных текущей транзакцией

SAVEPOINT

Установка точки сохранения (начала транзакции)

ROLLBACK

Откат изменений, сделанных с момента начала транзакции

В большинстве СУБД элементарные команды, составляющие тело транзакции, выполняются над некоторой буферной копией данных, и только если их удается успешно довести до конца, происходит окончательное обновление основной базы. Транзакция начинается от точки сохранения, задаваемой инструкцией SAVEPOINT, и может быть завершена по команде COMMIT или прервана по команде ROLLBACK (откат). Также в современных системах управления данными предусмотрены средства автоматического отката транзакций при возникновении системных сбоев. Таким образом, механизм управления транзакциями является важнейшим инструментом поддержания целостности данных.