7.2.4. Определение проверочных ограничений
Ограничение целостности CHECK задает диапазон возможных значений для столбца. Например, если в столбце хранится процентное значение, то необходимо гарантировать, что оно будет лежать в пределах от 0 до 100. Для этого можно использовать тип данных, допускающий хранение целых значений в диапазоне от 0 до 255, совместно с ограничением целостности CHECK, которое будет обеспечивать соответствующую проверку значений.
Преимуществом ограничения целостности CHECK является возможность определения для одного столбца множества правил контроля значений.
В основе ограничения целостности CHECK лежит проверка логического выражения, которое возвращает значение TRUE (истина) либо значение FALSE (ложь). Если возвращается значение TRUE, то ограничение целостности выполняется, и операция изменения или вставки данных разрешается. Когда же возвращается значение FALSE, то операция изменения или вставки данных отменяется.
Например, для обеспечения правильности задания значения для столбца Семестр в таблице «Учебный_план» (оно должно находиться в диапазоне от 1 до 10) можно использовать следующее логическое выражение:
((Семестр >= 1) OR (Семестр <= 10)))
Ограничение целостности при этом может быть задано на уровне столбца:
Семестр INTEGER NOT NULL CHECK ((Семестр >= 1) OR (Семестр <= 10))),
Или на уровне таблицы:
CHECK ((Семестр >= 1) OR (Семестр <= 10)))
Как уже было сказано, допускается применение нескольких ограничений CHECK к одному и тому же столбцу. В этом случае они будут применены в той последовательности, в какой они указаны в инструкции.