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

Ограничения значений данных

Ограничения – это элементы определения (constraints) таблицы, ограничивающие значения, которые можно вводить в ее столбцы.

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

Двумя базовыми типами ограничений является ограничения на столбец и ограничения на таблицу.

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

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

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

Использование ограничения NOT NULL

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

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

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

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

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

Столбцы с ограничение PRIMARY KEY не могут содержать NULL значений.

Например, для таблицы АНКЕТА в качестве первичного ключа задается столбец KOD.

CREAT TABLE АНКЕТА

(KOD NUMBER (3) NOT NULL PRIMARY KEY,

ФАМИЛИЯ VARCHAR (40) NOT NULL,

ИМЯ VARCHAR (15) NOT NULL,

………

ТЕЛЕФОН NUMBER (10) NULL);

Или первичный ключ определяются в операторе CREAT TABLE после запятой, отделяющий список столбцов.

CREAT TABLE АНКЕТА

(KOD NUMBER (3) NOT NULL,

ФАМИЛИЯ VARCHAR (40) NOT NULL,

ИМЯ VARCHAR (15) NOT NULL,

………

ТЕЛЕФОН NUMBER (10) NULL);

PRIMARY KEY (KOD);

Ограничение Foreign Key – указание внешнего ключа

Ограничение внешнего ключа является основным механизмом для поддержки ссылочной целостности между таблицами реляционной БД.

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

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

- количество столбцов в списке должно быть одинаковым;

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

Если эти условия выполняются, тогда система находится в состоянии ссылочной целостности.

Синтаксис ограничения Foreign Key, применяемого к таблице:

FOREIGN KEY список столбцов REFERENCES таблица [список столбцов]

Имена столбцов разделяются запятыми.

Например:

CREATE TABLE AHKETA_TBL

(НОМЕР_ЗАЧ_КН NUMBER (6) NOT NULL,

ГРУППА CHAR (6) NOT NULL,

ФАМИЛИЯ VARCHAR (15) NOT NULL,

ПРЕДМЕТ1 NUMBER (2) NOT NULL,

ПРЕДМЕТ4 NUMBER (2) NOT NULL,

FOREIGN KEY НОМЕР_ЗАЧ_КН_FK (НОМЕР_ЗАЧ_КН)

REFERENCES РЕЗУЛЬТАТЫ_TBL (НОМЕР_ЗАЧ_КН));

Внешний ключ может быть добавлен в таблицу с помощью команды ALTER TABLE как на примере:

ALTER TABLE AHKETA_TBL

ADD COMSTRAINT id_fk FOREIGN KEY (НОМЕР_ЗАЧ_КН)

REFERENCES РЕЗУЛЬТАТЫ_TBL (НОМЕР_ЗАЧ_КН);

О

111,12

пции команды ALTER TABLE отличается в разных реализациях языка SQL, особенно это относится к ограничениям. Более того, часто различаются сами определения ограничений и их применение, но сама концепция ссылочной целостности остается той же самой для всех реляционных БД.