Структура языка 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
  Пил Лондон 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    

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: