Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Расширенные возможности SQL

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

      Ограничения на значения столбца используют для того, чтобы данные в столбце (или наборе столбцов) соответствовали ряду определенных вами критериев. Наиболее часто используемыми из них являются следующие:
      •     Ограничение максимального и минимального значений — например, для предотвращения появления заказов на 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, если пол служащего неиз-вестен). Вы могли бы использовать этот тип данных в определениях таблиц. Преимущество пользователь-ских типов данных состоит в том, что такие ограниче-ния могут быть определены только один раз (в опреде¬лении типа данных), а потом они будут автоматически применяться каждый раз, когда будет использован пользовательский тип данных. Посмотрите в доку¬ментации своей СУБД, поддерживает ли она пользо¬вательские типы данных.