КАТЕГОРИИ: Архитектура-(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) |
On delete no action
REFERENCES T_RUBRIC (UNIKEY) ON UPDATE CASCADE
);
ЛЕКЦІЯ 9. Обмеження перевірки, що накладаються на значення стовпців таблиці
Обмеження перевірки, що накладаються на значення стовпців таблиці визначаються за допомогою конструкції CHECK (<умови_перевірки>) <умови_перевірки> = {<значення> <оператор> {<значення1> | (<вибір_одного>) } | <значення> [NOT] BETWEEN <значення1> AND <значення2> | <значення> [NOT] LIKE <значення1> [ESCAPE <значення2>] | <значення> [NOT] IN (<значення1> [, <значення2>..] | <вибір_багатьох>) |<значення> IS [NOT] NULL | <значення> {[NOT] {= | < | >} | >= | <=} { ALL | SOME | ANY } (<вибір_багатьох>) | EXISTS (<вираз_вибору>) | SINGULAR (<вираз вибору>) | <значення> [NOT] CONTAINING <значення1> | <значення> [NOT] STARTING [WITH] <значення1> | (<обмеж_стовпця>) | NOT <обмеж_стовпця> | <обмеж_стовпця> OR <обмеж_стовпця> | <обмеж_стовпця> AND <обмеж_стовпця> }
<значення> = { стовпець | <константа> | <вираз> | <функція> | NULL | USER | RDB$DB_KEY } [COLLATE collation]
<константа> = число | "рядок"
<функція> = { COUNT (* | [ALL] <значення> | DISTINCT <значення>) | SUM ([ALL] <значення>| DISTINCT <значення>) | AVG ([ALL] <значення> | DISTINCT <значення>) | MAX ([ALL] <значення> | DISTINCT <значення>) | MIN ([ALL] <значення> | DISTINCT <значення>) | CAST (<значення> AS <тип_даних>) | UPPER (<значення>) | GEN_ID (генератор, <значення>) }
Приклад При заповненні таблиці книжок TBOOK слідкувати за тим, щоб не можна було ввести число доступних книжок(число книжок наявних на полиці NUM_PRESENCE) більшим за загальну кількість цих книжок, придбаних у бібліотеку(NUM_ALL)
CREATE TABLE TBOOK ( UNIKEY PRMKEY, MATHERKEY INTEGER, BOOKNM VARCHAR(250) character set WIN1251 collate PXW_CYRL, REFERAT VARCHAR(500) character set WIN1251 collate PXW_CYRL, NUM_ALL SMALLINT DEFAULT 0 NOT NULL, NUM_PRESENCE SMALLINT DEFAULT 0 NOT NULL, NUM_USED COMPUTED BY (NUM_ALL - NUM_PRESENCE), CONSTRAINT TBOOK _PK PRIMARY KEY(UNIKEY), CONSTRAINT TBOOK _FK FOREIGN KEY (MOTHERKEY) REFERENCES T_RUBRIC(UNIKEY) , CONSTRAINT TBOOK _ NUM_ALL _CHECK CHECK(NUM_ALL > =NUM_PRESENCE) );
<вибір_одного> це оператор SELECT, що повертає одне значення чи жодного. <вибір_багатьох > це оператор SELECT, що може повертати більш одного значення (список значень) чи жодного. <вираз_вибору> це оператор SELECT стосовно однієї чи декількох таблиць БД, що може повертати більш одного значення (список значень) чи жодного.
<значення> <оператор> (<вибір_одного>) визначає, що значення стовпця знаходиться у відношеннях, обумовлених оператором операто р, з результатом виконання запиту SELECT до однієї чи декількох таблиць БД, причому як результат виконання запиту повертається одиничне значення (вибір_одного).
Приклад: Створити таблицю боржників з визначенням читача та дати, починаючи з якої він вважається боржником. Читач вважається боржником, якщо пройшло більше місяця(30 днів) з дати отримання хоча б однієї з книжок. Тобто читачі, у яких найстаріша дата початку використання книжок, менша за значення поля DATE_DEB на 30 днів.
create table TDEBTOR ( UNIKEY PRMKEY, READERKEY PRMKEY, DATE_DEB DATE, CONSTRAINT TDEBTOR_PK PRIMARY KEY(UNIKEY), CONSTRAINT TDEBTOR_DATE_CHECK CHECK(DATE_DEB > (SELECT MIN(START_DATE+30) FROM TREADER_BOOK WHERE TREADER_BOOK.READERKEY=TDEBTOR.READERKEY ) ) )
<3начення> <оператор> {ALL | SOME | ANY} (<вибір_багатьох>) визначає, що значення стовпця знаходиться у відношеннях, обумовлених оператором операто р: більше, менше і т.д. усіх (ALL) чи деяких (SOME чи ANY), значеннь у списку вибір_багатьох. Список значень вибір_багатьох видається як результат виконання оператора SELECT стосовно однієї чи декількох таблиць БД.
create table TDEBTOR ( UNIKEY PRMKEY, READERKEY PRMKEY, DATE_DEB DATE, CONSTRAINT TDEBTOR_PK PRIMARY KEY(UNIKEY), CONSTRAINT TDEBTOR_DATE_CHECK CHECK(DATE_DEB > SOME (SELECT (START_DATE+30)
Дата добавления: 2014-01-07; Просмотров: 257; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |