Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL_in_action.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
345.09 Кб
Скачать

Стандарт sql:1999 (sql3)

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка стандарта SQL3. Реально работу над новым стандартом удалось частично завершить только в 1999 г., и по этой причине (а также в связи с проблемой 2000 года) стандарт получил название SQL:1999.

1999 г. были приняты пять первых частей стандарта SQL:1999. Первая часть (SQL/Framework) посвящена описанию концептуальной структуры стандарта: приводится развернутая аннотация следующих четырех частей.

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

  • операторов определения и манипулирования схемой базы данных;

  • операторов манипулирования данными;

  • операторов управления транзакциями (расширенные модели транзакций, контрольные точки, многозвенные транзакций);

  • операторов управления подключениями к базе данных и т. д.

Третью часть занимает уточненная по сравнению с SQL/92 спецификация SQL/CLI. В четвертой части специфицируется SQL/PSM - синтаксис и семантика языка определения хранимых процедур (стандарт синтаксиса триггеров и процедур). Наконец, в пятой части - SQL/Bindings - определяются правила связывания SQL для стандартных версий языков программирования FORTRAN, COBOL, PL/1, Pascal, Ada, C и MUMPS.

В стандарт SQL:1999 не вошли и существуют в виде отдельных стандартов:

  • стандарт управления распределенными транзакциями (SQL/Transaction);

  • стандарт поддержки темпоральных свойств данных (SQL/Temporal);

  • стандарт управления внешними данными (SQL/MED);

  • поддержка оперативной аналитической обработки (SQL/OLAP).

Стандарт sql:2003

Кроме исправления некоторых неточностей допущенных в SQL:1999, стандарт SQL:2003 внес ряд новшеств:

  •  Изменена структура организации стандарта (часть SQL/Bindings объединена с SQL/Foundation, новые части SQL/Schemata, SQL/JRT (Java) и SQL/XML);

  •  Изменения в системе типов данных (исключена поддержка битовых строк BIT и BIT VARYING, добавлен конструктор типов мультимножеств (MULTISET), новый тип BIGINT и тип XML);

  •  Табличные функции (возвращают на выходе таблицу);

  •  Расширенные возможности оператора CREATE TABLE (создание подобных уже существующим таблиц (LIKE) или частичный экспорт структуры (AS);

  •  Генераторы последовательностей (sequence generators);

  •  Идентифицирующие столбцы (identity columns) и генерируемые столбцы (generated columns);

  •  Оператор MERGE для обновления базы (объединение шагов INSERT и UPDATE при обновлении одной таблицы ил другой);

2. Sql в примерах

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

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

Таблица поставщиков S:

Create table S (n_post char(5) not NULL,

name char(20),

reiting smallint,

town char(15))

Таблица деталей Р:

Create table P (n_det char(6) ,

name char(20),

cvet char(7),

ves smallint,

town char(15))

Таблица поставок SP:

Create table SP (n_post char(5) ,

n_det char(6),

date_post date,

kol smallint)

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

Содержание таблиц базы данных следующее:

Таблица поставщиков (S)

Hомеp_поставщика

Фамилия

Рейтинг

Гоpод

S1

Смит

20

Лондон

S2

Джонс

10

Париж

S3

Блейк

30

Париж

S4

Кларк

20

Лондон

S5

Адамс

30

Атенс

Таблица деталей (P)

Номер детали

Название

Цвет

Вес

Гоpод

P1

Гайка

Красный

12

Лондон

P2

Болт

Зеленый

17

Париж

P3

Винт

Голубой

17

Рим

P4

Винт

Красный

14

Лондон

P5

Кулачок

Голубой

12

Париж

P6

Блюм

Красный

19

Лондон

Таблица поставок (SP)

Номер поставщика

Номер детали

Дата поставки

Количество

S1

P1

01.02.2005

300

S1

P2

05.04.2005

200

S1

P3

12.05.2005

400

S1

P4

15.06.2005

200

S1

P5

22.07.2005

100

S1

P6

13.08.2005

100

S2

P1

03.03.2005

300

S2

P2

12.06.2005

400

S3

P2

04.04.2005

200

S4

P2

23.03.2005

200

S4

P4

17.06.2005

300

S4

P5

22.08.2005

400

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]