Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция спбд.docx
Скачиваний:
59
Добавлен:
14.09.2019
Размер:
223.04 Кб
Скачать

Оператор drop

Этот оператор позволяет удалить таблицу и имеет следующий формат:

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

Тема: Ограничения.

Все ограничения относятся к одной и трех категорий:

  1. Ограничение сущности;

  2. Ограничение домена;

  3. Ограничение ссылочной целостности.

Ограничение столбца

Ограничение стоблца задавать не обязательно, однако его использование позволяет автоматизировать процесс ввода значений, предотвращать ошибки ввода и управлять порядком сортировки строк.

Ограничение столбца имеет следующий формат:

[DEFAULT { <значение>| NULL | USER}]

[NOT NULL]

[COLLATE <порядок соритровки>]

[CHECK <условие>]

Операнд DEFAULT определяет для столбца значений по умолчанию, которое автоматически заносится в столбце при добавлении к таблице новой записи. В качестве значения по умолчанию можно указать:

  1. Константу (в столбец заносится указанное значение)(типы должны совпадать);

  2. Занести нулевое значение;

  3. В столбец заносится имя текущего пользователя (только для строковых типов).

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

Операнд COllATE определяет порядок сортировки строковых значений.

Операнд CHECK позволяет установить для столбца разнообразные условия, управляющие его значением. При редактировании записей столбцу разрешается присваивать только те значения, которые удовлетворяют заданным условиям. Чтобы задать диапазон ограничений для значений столбца используется операция сравнения или конструкция вида:

BETWEEN <min_value> AND <max_value>

Пример:

CREATE TABLE Test (

Name VARCHAR (20) NOT NULL,

Price FLOAT CHECK (Pice > 0),

Number INTEGER CHECK (Number BETWEEN 1 AND 1000)

);

Ограничение домена

Домен представляет собой именованное описание столбца. После определение домена его имя можно использовать при описании других столбцов. Перед использованием домена его нужно создать при помощи оператора CREATE DOMAIN. Он имеет формат:

CREATE DOMAIN <domain_name> [AS] <описание домена>

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

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

Пример:

CREATE DOMAIN D_position_name AS VARCHAR(20) NOT NULL;

CREATE DOMAIN D_price_name AS FLOAT CHECK (VALUE > 0);

Лекция №5 02.03.12

Тема: продолжение

Ограничение сущностей

Ограничение сущностей польностью относится к отдельным строкам. В ограничении этого типа не рассматривается весь столбец, интерес представляет только какая-то конкретная строка.

К ограничениям такого рода относятся ограничения примарного ключа и ограничению уникальности.

Изменение/создание примарного/уникального ключа после создания таблицы:

ALTER TABLE List

ADD CONSTRAINT PR_idList PRIMARY KEY(idList)

Ограничение ссылочной целостности

Действие ограничения ссылочной целостности заключается в следующем: если для записи главной таблицы имеется запись в подчиненной таблице/таблицах, то эту запись нельзя удалить, а так же изменить значения столбцов, образующих ключ.

Определение ограничения ссылочной целостности имеет следующий формат:

[CONSTRAINT <имя ограничения>]

FOREIGN KEY (список столбцов)

REFERENCES <имя главной таблицы> [<список ключа главной таблицы>]

При задании ограничений ссылочной целостности ключу (примарному или уникальному) главной таблицы ставится в соответствие внешний ключ подчиеннной таблицы.

Для описания внешнего ключа используются операнд FOREIGN KEY. Список этого операнла задает столбцы, по которым строится внешний ключ. В операнде REFERENCES указывается главная таблица. Описания столбцов ключа главной и подчиненной таблицы должны полность совпадать.

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

Пример задания ограничения ссылочной целостности:

//Главная таблица

CREATE TABLE store

(s_code INTEGER NOT NULL PRIMARY KEY,

s_name VARCHAR(20) NOT NULL,

s_price FLOAT ,

s_number FLOAT);

//Подчиненная таблица

//В ней сразу указываем связь с главной таблицей

CREATE TABLE Cards (

c_code INTEGER NOT NULL PRIMARY KEY,

c_move VARHCAR(20),

c_date DATE,

c_code2 INTEGER,

CONSTRAINT rStoreCards FOREIGN KEY(c_code2) REFERENCES store

);

Так же такой ключ можно указать через ALTER

ALTER TABLE Auto

ADD CONSTRAINT fk_k2

FOREIGN KEY (id_k) REFERENCES Klient

ON UPDATE cascade (ON DELETE Cascade) //перебор всех записей

Инструкции CREATE TABLE и ALTER TABLE поддерживают предложения ON DELETE и ON UPDATE.

-При удалении кортежа из доченей таблицы в родительской таблице так же удаляется соответствующий кортеж.

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

RESTRICT – удаление кортежа в дочерней таблицы возможно только если в родительской таблице отсутствует связанный кортеж.