Студопедия

КАТЕГОРИИ:


Архитектура-(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)

<== предыдущая лекция | следующая лекция ==>
On delete cascade on update cascade | Тема 4. Податок на прибуток підприємств
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 236; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.