Ocenka integer

UDATE DATE,

SNUM INTEGER NOT NULL,

PNUM INTEGER NOT NULL,

UNIQUE (SNUM, PNUM));

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

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

Предусмотрим для последнего примера другой первичный ключ:

CREATE TABLE USP

(UNUM INTEGER, NOT NULL UNIQUE,

OCENKA INTEGER,

UDATE DATE,

SNUM INTEGER NOT NULL,

PNUM INTEGER NOT NULL,

PRIMARY KEY (SNUM, PNUM));

В этом случае первичным ключом комбинация полей SNUM, PNUM.

12.4. CHEK. Может существовать любое число ограничений, которые допускается устанавливать для данных, вводимых в таблицу БД. Для этого в SQL предусмотрено ограничение CHEK., позволяющее поставит условие, в соответствии с которым проверяется вводимое в таблицу значение до того, как оно будет сохранено.Это ограничение состоит из ключевого слова CHEK и предиката, который использует указанное поле. Любая попытка модифицировать или вставить значение поля, которое делает этот предикат неверным, будет отклонена.

Пример 1.Исключить возможность ввода в таблицу USP оценки более 5 баллов.

CREATE TABLE USP

(UNUM INTEGER, NOT NULL PRIMARY KEY

OCENKA INTEGER CHEK (OZENKA =<5),

UDATE DATE,

SNUM INTEGER NOT NULL,

PNUM INTEGER NOT NULL,

PRIMARY KEY (SNUM, PNUM));

Пример 2. Исключим возможность ввода в таблицу USP оценок, отличных от 1,2,3,4 и 5.

CREATE TABLE USP

(UNUM INTEGER, NOT NULL PRIMARY KEY

OCENKA INTEGER CHEK IN (1, 2, 3, 4, 5),

UDATE DATE,

SNUM INTEGER NOT NULL,

PNUM INTEGER NOT NULL,

PRIMARY KEY (SNUM, PNUM));

В SQL можно также использовать CHEK вкачестве табличного ограничения. Это полезно в тех случаях, когда возникает необходимость включить более одного поля в условии.

Пример 3. Выставить отличные оценки, выставленные до 15/06/1999

CREATE TABLE USP

(UNUM INTEGER, NOT NULL PRIMARY KEY

OCENKA INTEGER UDATE DATE,

SNUM INTEGER NOT NULL,

PNUM INTEGER NOT NULL,

CHEK (OZENKA <5

AND UDATE > 15/06/1999));

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

12.5.DEFAULT (по умолчанию) определяется, что должно случиться, если не введено любое из явных допустимых значений.

Пример 1. Указать в качестве значений поля OCENKA по умолчанию 5.

CREATE TABLE USP

(UNUM INTEGER, NOT NULL PRIMARY KEY


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



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