Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТВ. ТЕБЕНЬКОВ Е.С. БД.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
386.6 Кб
Скачать

5. Операторы описания данных в sql

Data Definition Language (DDL) (язык описания данных) - это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.

На текущий момент наиболее популярным языком DDL является SQL, используемый для получения и манипулирования данными в РСУБД, и сочетающий в себе элемены DDL и DML.

Функции языков DDL определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы - "create" ("создать"), "alter" ("изменить"), "drop" ("удалить"). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.

Языки DDL могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные "расширения" языка.

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

  1. create database имя – создание базы данных;

  2. close database – закрыть текущую базу данных;

  3. open database имя – начать работу с существующей базой данных;

  4. drop database имя – удаление БД;

  5. create table имя (поле тип атрибуты,

поле1 тип атрибуты...)

атрибуты таблицы

Типы данных в SQL.

  1. Integer – целое,занимает 4 байта;

  2. Smallint - короткое целое, занимает 2 байта;

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

  4. Float – число с плавающей точкой, занимает 8 байт;

  5. Smallfloat – короткое число с плавающей точкой, занимает 4 байта;

  6. decimal(P[,n]) – упакованное число, Р – общее количество цифр в числе, n- обозначает сколько чисел после запятой, C положительное число, D – отрицательное;

  7. money(P,n) – для представления денежных едениц;

  8. date – для хранения дат;

  9. datetime a to b – временный интервал от а до b, значения а и b могут быть следующие:

year

day

month

hour

minute

second

fraction(1,2,3),

например, datetime year to hour 2000-04-10-13

  1. char – строки постоянной длины;

  2. char(n) – строки постоянной длины до n;

  3. varchar – строки до 255;

  4. varchar(n) – строки до n;

  5. text – произвольные тексты до 2ГБ;

  6. byte произвольная последовательность байтов до 2ГБ;

  7. null – пустое значение, причем 2 пустых значения не равны между собой.

Атрибуты, используемые для описания таблиц.

  1. Атрибуты, описывающие характеристики столбца:

Primary key - данное поле является первичным ключом;

References имя_таблицы (имя_поля) – данный столбец является внешним ключом, он взят из таблицы и поля, указанного в атрибуте;

Not null – в этом столбце не должно быть пустых значений;

Default значение – указывает значение, которое принимается по умолчанию.

Unique - все значения в этом поле должны быть уникальными, по умолчанию поле Primary key должно быть Not null и Unique;

Check (Условие) – задает условие, которое должно быть истинным при заполнении информации в этом поле.

  1. Атрибуты на уровне таблицы.

Check (Условие) – это значение должно быть истинным, чтобы компьютер признал все изменения правильными;

Unique (список полей) – все значения в комбинации полей должны быть уникальными;

Primary key (список полей) – указывается на уровне таблицы, если первичный ключ состоит из нескольких полей;

References имя_поля1 from имя_таблицы1 (поле1) – в нашей таблице имя_поля1 берется из таблицы1, поля1.

О бработка ссылочной целостности.

Restrict - указывает каким образом поддерживается

On delete cascade процедура удаления в связующей таблице.

null

restrict - указывае каким образом поддерживается

On update cascade процедура изменения в связующей таблице.

null

Restrict указывает, что удаление (изменение) в связующей таблице при наличие связей запрещено.

Cascade обозначает, что удаление (изменение) сначала происходит в связующей таблице, а затем изменяется сам объект.

Null указывает, что ключи связей получают значение null.

Рассмотрим на примере оn update:

Пусть у нас есть 2 таблицы, в первой находится описание объекта, а вторая таблица является связующей.

№поставщика

Фамилия

1

Петров

1

Петров

№поставщика

Название_детали

вес

количество

1

Болт

13

244

1

Гайка

12

200

Если в оn update стоит restrict, то при изменении №поставщика, например, на 10, будет выдано сообщение о том, что данный номер используется в связующей таблице, и изменение будет запрещено.

Если в оn update стоит cascade, то сначала произойдет изменение в №поставщика в связующей таблице, и только потом изменится №поставщика в первой таблице.

Если в оn update стоит null, то в первой таблице №поставщика изменится с 1 на 10, а в связующей таблице вместо №поставщика будет записано null.

Примеры:

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

CREATE TABLE Клиент

(Фирма VARCHAR(50) NOT NULL,

Фамилия VARCHAR(50) NOT NULL,

Имя VARCHAR(50) NOT NULL,

Отчество VARCHAR(50),

ГородКлиента VARCHAR(50),

Телефон CHAR(10) NOT NULL)

Добавить в таблицу Клиент поле для номера расчетного счета.

ALTER TABLE Клиент ADD Рас_счет CHAR(20)

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

ALTER TABLE Сделка ADD CONSTRAINT fk_Товар

FOREIGN KEY (КодТовара) REFERENCES Товар

ON UPDATE CASCADE ON DELETE CASCADE