КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Ограничения на уровне домена
Средства СУБД InterBase, обеспечивающие приемлимые значения целостность данных. DO FOR <оператор SELECT> < оператор>;
Оператор SELECT представляется в расширенном синтаксисе оператора SELECT для алгоритмического языка хранимых процедур и триггеров, то есть в нем может присутствовать предложение INTO. Алгоритм работы оператора FOR SELECT... DO заключается в следующем. Выполняется оператор SELECT, и для каждой строки результирующего набора данных, возвращаемого данным SELECT, выполняется оператор, следующий за словом DO. Этим оператором часто бывает SUSPEND (см. ниже), который приводит к возврату выходных параметров в вызывающее приложение.
Оператор SUSPEND. Оператор SUSPEND передает в вызывающее приложение значения результирующих параметров (перечисленных после слова RETURNS в описании функции), имеющие место на момент выполнения SUSPEND. После этого выполнение хранимой процедуры приостанавливается. Когда от оператора SELECT вызывающего приложения приходит запрос на следующее значение выходных параметров, выполнение хранимой процедуры возобновляется.
Оператор WHILE... DO. Оператор имеет формат WHILE (<условие>) DO < оператор>
Алгоритм выполнения оператора: в цикле проверяется выполнение условия; если оно истинно, выполняется оператор. Цикл продолжается до тех пор, пока условие не перестанет выполняться.
Оператор EXIT. Оператор EXIT инициирует прекращение выполнения процедуры и выход в вызывающее приложение.
Оператор EXECUTE PROCEDURE. Оператор имеет следующий формат:
EXECUTE PROCEDURE имя [параметр [, параметр...]]; [RETURNING_VALUES параметр [, параметр... ]];
Выполняет другую хранимую процедуру из тела данной хранимой процедуры. При этом после слова PROCEDURE перечисляются входные параметры, если они есть, а после RETURNING_VALUES перечисляются выходные параметры.
Оператор POST_EVENT. Оператор имеет следующий формат
POST_EVENT "Имя события";
Он применяется для посылки сервером клиентским приложениям сообщения о наступлении какой-либо ситуации, связанной с именем события. Приложение должно зарегистрироваться на сервере для получения уведомления о наступлении событий и указать список интересующих приложение событий.
Пришло время рассмотреть предложение CHECK оператора CREATE DOMAIN.
CREATE DOMAIN домен [AS] <тип_данных> [DEFAULT {литерал | NULL | USER}] [NOT NULL] [CHECK (<условие_поиска>)] [COLLATE collation]
Предложение 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 <огранич__домена> <огранич_домена> OR <огранич_домена> <огранич_домена> AND <огранич_домена>
где <оператор> = {= | < | > | <= | >= |!< |!> | <> |!=} Ключевое слово VALUE далее означает все правильные значения, которые могут быть присвоены столбцу, ассоциированному с доменом. · VALUE <оператор> <значение> определяет, что значение домена
CREATE DOMAIN ID_TYPE AS INTEGER CHECK(VALUE >= 100);
· BETWEEN <значение1> AND <значение2> определяет, что значение домена должно находиться в промежутке между значение] и значение2, включая их; · LIKE <значение1> [ESCAPE <значение2>| определяет, что значение домена должно "походить" на параметр значение 1. При этом употребляется символ '%' для указания любого значения любой длины и символ '_' (подчеркивания) для указания любого единичного символа. Например,
LIKE "%USD" - вводимое значение должно оканчиваться символами 'USD', независимо от того, какие символы и сколько расположены перед ними;
LIKE " __94" – вводимое значение может содержать 4 символа, из которых первые два – любые и последние два - '94'.
ESCAPE <значение2> используется, если в операторе LIKE символы '%' или '_' должны использоваться в шаблоне подобия. В этом случае выбирается некоторый символ, например "!", после которого символы '%','_' входят в поисковую строку как непосредственно символы. Символ '!' указывается после слова ESCAPE, например:
CREATE DOMAIN SUMMA AS CHAR(10) CHECK(LIKE "%!%" ESCAPE "!");
Значения столбца SUMMA должны заканчиваться символом "%".
· IN (<значение1> [, <значение2>...]) определяет, что значение домена должно совпадать с одним из приведенных в списке параметров значение Х,, например:
CREATE DOMAIN SEX AS CHAR(1) CHECK(VALUE IN ("М","Ж"));
· CONTAINING <значение> определяет, что значение домена должно содержать вхождение параметра значение, неважно в каком месте. Например, в наименовании отдела вхождение "041" может встретиться где угодно ("Отдел-041002", "003404192", и т.д.):
CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10) CHECK(VALUE CONTAINING "041") COLLATE PXW_CYRL;
· STARTING [WITH] <значение> требует, чтобы значение домена начиналось параметром значение. Например, название отдела должно начинаться с "041":
CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10) CHECK(VALUE STARTING WITH "041") COLLATE PXW_CYRL;
· Может быть задана комбинация условий, которым должно соответствовать значение домена. В этом случае отдельные условия соединяются операторами AND или OR. Например:
CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10) CHECK(VALUE STARTING WITH "041" AND VALUE CONTAINING "-12") COLLATE PXW_CYRL;
Для большинства условий можно указать слово NOT, которое изменит условие с точностью до наоборот. Например:
CHECK(VALUE NOT BETWEEN 1 AND 100);
Дата добавления: 2014-01-05; Просмотров: 389; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |