Ограничения на значения столбца
Ограничения на значения столбца используют для того, чтобы данные в столбце (или наборе столбцов) соответствовали ряду определенных вами критериев. Наиболее часто используемыми из них являются следующие:
• Ограничение максимального и минимального значений — например, для предотвращения появления заказов на 0 (нуль) предметов (хотя 0 и является допустимым числом).
• Указание диапазонов — например, ограничение на то, чтобы дата отгрузки наступала позже или соответствовала текущей дате и не отстояла от нее больше, чем на год.
• Разрешение только определенных значений — например, разрешение вводить в поле "пол" только буквы М или F.
Типы данных ограничивают типы данных, которые могут храниться в столбце. Ограничения на значения столбца предъявляют дополнительные требования уже к данным определенного типа.
В следующем примере накладывается ограничение на значения столбцов таблицы Orderltems с тем, чтобы для всех предметов указывалось количество, большее 0:
После применения этого ограничения каждая добавляемая (или обновляемая) строка будет проверяться на предмет того, что количество предметов больше нуля.
CREATE TABLE Orderltems
(
order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
prod_id CHAR(10) NOT NULL,
quantity INTEGER NOT NULL CHECK (quantity > 0) ,
item_price MONEY NOT NULL
)
Чтобы проконтролировать тот факт, что в столбце с наименованием пола может содержаться только буква М или F, можно сделать следующее в операторе ALTER TABLE:
ADD CONSTRAINT CHECK (gender LIKE '[MF]')
Пользовательские типы данных
Пользователи некоторых СУБД могут определять собственные типы данных. Обычно это весьма про-стые типы данных, определенные с контрольными (или другими) ограничениями. Например, вы можете определить свой тип данных, назвав его gender (пол); он будет представлять собой тип данных, состоящих из одной буквы с ограничением на значения столбца, допускающим для этих данных только два значения, м или F (и, возможно, NULL, если пол служащего неиз-вестен). Вы могли бы использовать этот тип данных в определениях таблиц. Преимущество пользователь-ских типов данных состоит в том, что такие ограниче-ния могут быть определены только один раз (в опреде¬лении типа данных), а потом они будут автоматически применяться каждый раз, когда будет использован пользовательский тип данных. Посмотрите в доку¬ментации своей СУБД, поддерживает ли она пользо¬вательские типы данных.