Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






При определении (изменении) таблицы или домена на значения столбца могут налагаться ограничения. В этом случае InterBase будет автоматически отслеживать вводимые в столбец значения, отвергая те из них, которые не удовлетворяют наложенным на столбец ограничениям. Ограничение накладывается специфика­тором CHECK и имеет такой формат:

CHECK (< ограничение>)

< ограничение> =

{< значение> < знак операции> {< значение1> | (< выбор_одного>)}

|< значение> [NOT] BETWEEN < значение1> AND < значение2>

|< значение> [NOT] LIKE < маска_подобия> [ESCAPE < символ> ]

|< значение> [NOT] IN (< значение1> [, < значение2>...] | < выбор_многих>)

< значение> IS [NOT] NULL

|< значение> {[NOT] {=| < | > } | > = | < =}

{ALL | SOME | ANY} (< выбор_многих>)

EXISTS (< выражение_выбора>)

SINGULAR (< выражение_выбора>)

< значение> [NOT] CONTAINING < значение1>

< значение> [NOT] STARTING [WITH] < строка>

NOT < ограничение>

< ограничение> OR < ограничение>

< ограничение> AND < ограничение> }

 

< значение> = {столбец | < константа> | < выражение> | < функция>

|NULL | USER | RDB$DB_KEY } [COLLATE collation]

 

< константа> = число | " строка"

 

< Функция> = {

COUNT (* | [ALL] < значение> | ISTINCT < значение>)

|SUM ([ALL] < значение> |DISTINCT < значение>)

|AVG ([ALL] < значение> |DISTINCT < значение>)

|MAX ([ALL] < значение> | DISTINCT < значение>)

|MIN ([ALL] < значение> | DISTINCT < значение>)

|CAST (< значение> AS < тип_данных>)

|UPPER (< значение>)

|GEN_ID (генератор, < значение>)

}

Ниже перечислены используемые обозначения.

12. < знак операции> — один из следующих символов или их комбинация: < > < = > =! <! > < > ! =

13. < выбор_одного> — оператор SELECT, возвращающий одно значение или не возвращающий ничего;

14. < маска_подобия> — произвольная строка, возможно, содержащая символы-заменители % (символ процента) и/или _ (символ подчеркивания):

• символ процента означает произвольное (в том числе и нулевое) количе­ство любых символов, которые могут стоять на его месте;

• символ подчеркивания означает, что на его месте должен стоять любой символ' О < символ> — любой символ, отличный от символа-заменителя, который в мас­ке подобия играет роль символа-заменителя;

· < выбор_многих> — оператор SELECT, который может возвращать более од­ного значения (список значений) или ни одного;

· < выражение_выбора> — оператор SELECT, который может возвращать бо­лее одного значения (список значений) или ни одного.

Примеры наложения ограничений:

CREATE TABLE MixTable (

/* Столбец не должен содержать отрицательных значений */

Coll INT CHECK(Coll> =0),

/* Значения столбца > = 100 и < = 200 */

Со12 INT CHECK(Col2 BETWEEN 100 AND 200),

/* Значения столбца должны заканчиваться символами " у.е."

Со13 CHAR(40) CHECK(Col3 LIKE '% у.е. '),

/* Значения столбца должны заканчиваться символом " %" */

Со14 CHAR(20) CHECK(Col4 LIKE '%! %' ESCAPE '! '),

/* Значения столбца должны совпадать с одним из значений столбца NakllD таблицы Nakls */

Со15 INT CHECK(Col5 IN (SELECT BookID FROM Books)),

/* Столбец должен содержать значения большие, чем значение, возвращаемое генератором GEN_BOOKS */

Со16 INT CHECK(Со1б > Gen_ID(GEN_BOOKS, 0)),

/* Строка в значении столбца должна начинаться пробелом */

Со17 CHAR(5) CHECK(Col7 STARTING WITH " "))






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.