Delphi 3 и создание приложений баз данных

       

Ограничения на значения столбцов, ассоциированных с доменом


Предложение CHECK определяет требования к значениям каждого столбца, ассоциированного с доменом. Столбцу не могут быть присвоены значения, не удовлетворяющие ограничениям, наложенным в предложении CHECK. Формат ограничения, накладываемого на значения полей, ассоциированных с доменом:

<огранич_домена> = {

VALUE <оператор> <значение>

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

| VALUE [NOT] LIKE <значение> [ESCAPE <значение>]

| VALUE [NOT] IN (<значение1> [, <значение2> ...]) VALUE IS [NOT] NULL

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

| VALUE [NOT] STARTING [WITH] <значение>

| (<огранич домена>) | NOT <огранич домена>

| <огранич_домена> ОR<огранич_домена> | <огранич домена> AND <огранич_домена>

}

где <оператор> = {= | < | > | <= | >= | !< | !> | <> | !=}

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



• VALUE <оператор> <значение>

определяет, что значение домена находится с параметром значение во взаимоотношениях, определяемых параметром оператор.

Например, значение, которое может быть записано в столбец, ассоциированный с доменом ID_TYPE, должно быть больше или равно 100:

CREATE DOMAIN ID_TYPE AS INTEGER CHECK(VALUE >= 100);

• BETWEEN <значение1> AND <значение2>

определяет, что значение домена должно находиться в промежутке между значение! и значение!, включая их;

• LIKE <значение1> [ESCAPE <значение2>1

определяет, что значение домена должно "походить" на параметр значение!. При этом употребляется символ '%' для указания любого значения любой длины и символ '_' (подчеркивания) для указания любого единичного символа. Например,

LIKE "%USD" - вводимое значение должно оканчиваться символами 'USD', независимо от того, какие символы и сколько расположены перед ними;

LIKE "_94" - вводимое значение может содержать 4 символа, из которых первые два - любые и последние два - '94'.

ESCAPE <значение2>

используется, если в операторе LIKE символы '%' или '_' должны использоваться в шаблоне подобия. В этом случае выбирается некоторый символ, например "!", после которого символы '%', '_' входят в поисковую строку как непосредственно символы. Символ Т указывается после слова ESCAPE, например:

CREATE DOMAIN SUMMA AS CHAR(lO) CHECK(LIKE "%!%" ESCAPE "!");

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

• IN (<значение1 > [, <значение2>...])

определяет, что значение домена должно совпадать с одним из приведенных в списке параметров значение Х,, например:

CREATE DOMAIN POL_TYPE AS CHAR(3) CHECK(VALUE IN ("Муж","Жен"));

• CONTAINING <значение>

определяет, что значение домена должно содержать вхождение параметра значение, неважно в каком месте. Например, в наименовании отдела вхождение "041" может встретиться где угодно ("Отдел-041002", "003404192", и т.д.):

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(lO) CHECK(VALUE CONTAINING "041") COLLATE

PXW_CYRL;

STARTING [WITH] <значение>

требует, чтобы значение домена начиналось параметром значение. Например, название отдела должно начинаться с "041":

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(lO) CHECK(VALUE STARTING WITH "041")

COLLATE PXW_CYRL;

• Может быть задана комбинация условий, которым должно соответствовать значение домена. В этом случае отдельные условия соединяются операторами AND или OR. Например:

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(lO) CHECK(VALUE STARTING WITH "041" AND

VALUE CONTAINING "-12") COLLATE PXW_CYRL;

• Для большинства условий можно указать слово NOT, которое изменит условие с точностью до наоборот. Например: CHECK(VALUE NOT BETWEEN 1 AND 100);



Содержание раздела