![]()  | 
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
| 
 | 
Основу языка SQL составляют операторы, условно разбитые на несколько групп по выполняемым функциям. Можно выделить следующие группы операторов (перечислены не все операторы SQL):
DDL (Data Definition Language) - операторы определения объектов базы данных:
7 CREATE SCHEMA - создать схему базы данных;
8 DROP SHEMA - удалить схему базы данных;
9 CREATE DATABASE - создать базы данных;
10 DROP DATABASE - удалить базу данных;
11 CREATE TABLE - создать таблицу;
12 ALTER TABLE - изменить таблицу;
13 DROP TABLE - удалить таблицу;
14 CREATE DOMAIN - создать домен;
15 ALTER DOMAIN - изменить домен;
16 DROP DOMAIN - удалить домен;
17 CREATE INDEX - создать индекс;
18 DROP INDEX - удалить индекс;
19 CREATE COLLATION - создать последовательность;
20 DROP COLLATION - удалить последовательность;
21 CREATE VIEW - создать представление;
22 DROP VIEW - удалить представление.
DML (Data Manipulation Language) - операторы манипулирования данными:
1) SELECT - отобрать строки из таблиц;
2) INSERT - добавить строки в таблицу;
3) UPDATE - изменить строки в таблице;
4) 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 добавлены типы данных:
I. VARCHAR(n) – строки символов переменной длины;
II. BIT(n) – строки битов постоянной длины;
III. DATE – календарная дата;
IV. 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 | 
| Пил | Лондон | 0.12 | |
| Серенс | Мехико | 0.13 | |
| Мотье | Лондон | 0.11 | |
| Рифкин | Барселона | 0.15 | |
| Аксельрод | Париж | 0.10 | 
Таблица 4.3 - Заказчики
| CNUM | CNAME | CITY | RATING | SNUM | 
| Хофман | Лондон | |||
| Джованни | Рим | |||
| Луи | Мехико | |||
| Грасс | Берлин | |||
| Клеменс | Лондон | |||
| Киснерос | Мехико | |||
| Перера | Рим | 
Таблица 4.4 - Порядки
| ONUM | AMT | ODATE | SNUM | SNUM | 
| 18.67 | 10/03/2003 | |||
| 767.19 | 10/03/2003 | |||
| 1900.10 | 10/03/2003 | |||
| 5160.45 | 10/03/2003 | |||
| 1098.16 | 10/03/2003 | |||
| 1713.23 | 10/04/2003 | |||
| 75.76 | 10/04/2003 | |||
| 4723.00 | 10/05/2003 | |||
| 1309.95 | 10/06/2003 | |||
| 9891.88 | 10/06/2003 | 
Дата публикования: 2014-11-19; Прочитано: 1633 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
