Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в реляционные базы данных и язык SQL..pdf
Скачиваний:
10
Добавлен:
15.11.2022
Размер:
1.53 Mб
Скачать

ЧАСТЬ И. Введение в язык SQL

SQL (Structured Query Language) - структурированный язык запросов. Этот язык был разработан в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R. После появления на рынке двух пионерских СУБД этой фирмы - SQL/DS в 1981 году и DB2 в 1983 году - SQL приобрел статус стандарта де-факто для профессиональных реляционных СУБД. В 1987 году SQL стал международным стандартом языка баз данных, а в 1992 году вышла вторая версия этого стандарта - ANSI 92 (SQL-92), принятого американским национальным институтом стандартов (ANSI) и международной организацией стандартов (ISO).

Составляющими SQL являются:

язык определения схемы (Scheme Definition Language) - SDL, который содержит команды создания, изменения и удаления объектов РБД: таблиц, индексов, ограничений и др.;

язык манипулирования данными (Data Manipulation Language) - DML, который содержит команды добавления, изменения, удаления и поиска данных. Составной частью DML являются запросы.

Ниже кратко изложены основы языка SQL, при этом используются следующие термины.

Список столбцов - имена столбцов, разделенные запятыми. В качестве списка всех столбцов может быть использован символ Вместе с именами столбцов могут быть использованы их алиасы (от англ, alias - псевдоним).

Алиас - необязательное краткое название (псевдоним) таблицы или столбца, которое указывается рядом с названием таблицы или столбца и отделяется пробелом, например: table4 t4, field7 f7. Алиас таблицы может быть использован в именах столбцов этой таблицы (при этом он отделяется точкой), например: tl .fieldid, t2.field_id. Использование алиаса таблиц особенно важно в тех случаях, когда названия первичного ключа одной таблицы и соответствующего ему внешнего ключа другой таблицы совпадают.

Предикат - логическое выражение.

Значение - конкретное число, символьная строчка (в двойных или одинарных кавычках), дата (в двойных или одинарных кавычках) и т. д.

Более подробную информацию о языке SQL можно найти в [1,2,3,4,8].

5. Язык определения схемы (SDL)

Объектами РБД называются составные части РБД, информацию о которых необходимо хранить в РБД: таблицы (table), индексы (index), ограничения (constraints) и др.

5.1. Таблицы

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

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

Синтаксис команды создания таблицы:

CREATE TABLE <имя таблицы> (

<имя столбца> <тип даиных> [(размер)] [ограничения],

[ограничения (<список столбцов>)]

)

типы данных - INTEGER, CHARACTER, DECIMAL, DATE и др.; размер - если не указан, подставляется по умолчанию; ограничения - ограничения на значения столбца:

NOT NULL - запрет null значений; UNIQUE - уникальное значение;

PRIMARY KEY - ограничение первичного ключа;

CHECK (предикат) - условие размещения данных; DEFAULT = <значение> - значение столбца по умолчанию;

FOREIGN KEY <список столбцов> REFERENCES <имя таблицы> [(список столбцов)] - ограничения внешнего ключа.

Например, для создания таблицы "Деятельность" в РБД "Партнеры" (рис. 9 и 10) необходимо выполнить следующую команду:

CREATE TABLE Деятельность

(

номер_деятельности INTEGER,

номерфирмы

INTEGER NOT NULL,

название

CHAR(40) NOT NULL,

CONSTRAINT деятельность_пк PRIMARY KEY (номер_деятельности), CONSTRAINT деятельность__вк1 FOREIGN KEY (номер фирмы) REFERENCES Фирма ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT деятельность_ак1 UNIQUE (номер_фирмы, название)

)

Удалить можно только пустую таблицу. Синтаксис команды удаления таблицы:

DROP TABLE <имя таблицы>

Например:

DROP TABLE Деятельность

5.2.Индексы

Индексы - упорядоченные списки содержимого столбцов в таблице. Основным преимуществом использования индексов [3] является значительное

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

Фирма

 

 

 

Деятельность

 

 

Номер

Название

Город

Капитал

Номер

Номер

Название

фирмы

деятельности

фирмы

 

 

 

 

1

Эрнест

Москва

4 000 000

1

3

Торговля

2

Спецстрой

Омск

 

2

4

Производство

3

Квант

Мурманск

500 000

3

1

Аудит

4

Вега

Москва

2 200 000

4

3

Производство

 

 

Сотрудник

 

 

 

 

 

 

Номер

ФИО

Должность

Номер

 

 

 

сотрудника

фирмы

 

 

 

1

Иванов И.И.

директор

1

 

 

 

2

Сидорова М.Н.

гл. бухгалтер

1

 

 

 

3

Петров П.П.

директор

4

 

 

 

4

Антонов А.А.

менеджер

2

 

Рис. 9. Реляционная база данных "Партнеры"

Рис. 10. Проект реляционной базы данных "Партнеры"

Синтаксис команды создания индекса:

CREATE [UNIQUE] INDEX <имя индекса>

ON <имя таблицы> (<список столбцов>)

Например, для создания индекса на поле "Номер фирмы" в таблице "Фирмы" в РБД "Партнеры" (рис. 9 и 10) необходимо выполнить следующую команду:

CREATE INDEX Фирма_индекс_пк ON Фирма (номер фирмы)