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

4.2 Структура языка sql

Основу языка SQL составляют операторы, условно разбитые на несколько групп по выполняемым функциям. Можно выделить следующие группы операторов (перечислены не все операторы SQL):

Ddl (Data Definition Language) - операторы определения объектов базы данных:

  • CREATE SCHEMA - создать схему базы данных;

  • DROP SHEMA - удалить схему базы данных;

  • CREATE DATABASE - создать базы данных;

  • DROP DATABASE - удалить базу данных;

  • CREATE TABLE - создать таблицу;

  • ALTER TABLE - изменить таблицу;

  • DROP TABLE - удалить таблицу;

  • CREATE DOMAIN - создать домен;

  • ALTER DOMAIN - изменить домен;

  • DROP DOMAIN - удалить домен;

  • CREATE INDEX - создать индекс;

  • DROP INDEX - удалить индекс;

  • CREATE COLLATION - создать последовательность;

  • DROP COLLATION - удалить последовательность;

  • CREATE VIEW - создать представление;

  • DROP VIEW - удалить представление.

Dml (Data Manipulation Language) - операторы манипулирования данными:

  • SELECT - отобрать строки из таблиц;

  • INSERT - добавить строки в таблицу;

  • UPDATE - изменить строки в таблице;

  • DELETE - удалить строки в таблице;

Dcl (Data Control Language) - операторы контроля данных, защиты и управления данными:

  • CREATE ASSERTION - создать ограничение;

  • DROP ASSERTION - удалить ограничение;

  • COMMIT - зафиксировать внесенные изменения;

  • ROLLBACK - откатить внесенные изменения.

  • GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами;

  • REVOKE - отменить привилегии пользователя или приложения.

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

Наиболее важными для пользователя являются операторы манипулирования данными (DML).

В языке SQL/89 поддерживаются следующие типы данных (таблица 4.1):

Таблица 4.1 – Типы данных SQL/89

Тип данных SQL/89

Определяемые данные

CHARACTER(n) или CHAR(n)

символьные строки с постоянной длиной n

NUMERIC[(n,m)], DECIMA[(n,m)] или DEC[(n,m)]

точные числа, здесь n – общее число цифр в числе; m – количество цифр слева от десятичной точки

INTEGER или INT

целые числа

SMALLINT

целые числа меньшего диапазона

REAL

вещественные числа в форме с плавающей точкой

FLOAT[(n)]

вещественные числа большой точности в форме с плавающей точкой, здесь n – общее число байт, отводимое на хранение чисел

DOUBLE PRECISION

вещественные числа большой точности в форме с плавающей точкой

В стандарте SQL/92 добавлены типы данных:

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

  • BIT(n) – строки битов постоянной длины;

  • DATE – календарная дата;

  • INTERVAL – временной интервал и др.

Заметим еще, что в большинстве реализаций SQL поддерживаются некоторые дополнительные типы данных, например, TIME, INTERVAL, MONEY. Некоторые из этих типов специфицированы в стандарте SQL/92, но в текущих реализациях синтаксические и семантические свойства таких типов могут различаться.

Конкретными реализациями SQL поддерживаются собственные наборы типов данных и встроенных функций, позволяющих выполнять обработку данных числового и строкового типов. Определены арифметические операции: + | - | * | /

В качестве удобного примера при дальнейшем рассмотрении реализации операторов SQL будем использовать учебную БД условной торговой фирмы «ЗАКАЗЫ» (пример взят у М. Грабера [3]). БД состоит из трех таблиц (таблицы 4.2-4.4). Для продавцов заданы: номер – SNUM; имя – SNAME; город, в котором он живет, - CITY; комиссионные, которые он получает с каждого оформленного заказа, - COMM. Для заказчиков заданы: номер – CNUM; имя – CNAME; город, в котором он живет, - CITY; номер продавца, который обслуживает данного заказчика, - SNUM. Для заказов (здесь они названы порядками) заданы: номер – ONUM; сумма заказа – AMT; дата оформления заказа – ODATE; номер заказчика, который оплатил данный заказ, - CNUM; номер продавца, который обслуживает данный заказ, - SNUM. Приняты следующие соглашения:

  • один продавец может обслуживать несколько заказчиков;

  • один заказчик работает только с одним продавцом данной фирмы.

Таблица 4.2 - Продавцы

SNUM

SNAME

CITY

COMM

1001

Пил

Лондон

0.12

1002

Серенс

Мехико

0.13

1004

Мотье

Лондон

0.11

1007

Рифкин

Барселона

0.15

1003

Аксельрод

Париж

0.10

Таблица 4.3 - Заказчики

CNUM

CNAME

CITY

RATING

SNUM

2001

Хофман

Лондон

100

1001

2002

Джованни

Рим

200

1003

2003

Луи

Мехико

200

1002

2004

Грасс

Берлин

300

1002

2006

Клеменс

Лондон

100

1001

2008

Киснерос

Мехико

300

1007

2007

Перера

Рим

100

1004

Таблица 4.4 - Порядки

ONUM

AMT

ODATE

SNUM

SNUM

3001

18.67

10/03/2003

2008

1007

3003

767.19

10/03/2003

2001

1001

3002

1900.10

10/03/2003

2007

1004

3005

5160.45

10/03/2003

2003

1002

3006

1098.16

10/03/2003

2008

1007

3009

1713.23

10/04/2003

2002

1003

3007

75.76

10/04/2003

2004

1002

3008

4723.00

10/05/2003

2006

1001

3009

1309.95

10/06/2003

2004

1002

3011

9891.88

10/06/2003

2006

1001

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