Лабораторная работа №4. Введение в язык sql. Создание таблиц и ограничений на sql


Проверка условий, базирующийся на многочисленых полях



Pdf көрінісі
бет32/40
Дата08.12.2023
өлшемі0,63 Mb.
#135241
түріЛабораторная работа
1   ...   28   29   30   31   32   33   34   35   ...   40
Проверка условий, базирующийся на многочисленых полях 
Вы можете также использовать 
CHECK
в качестве табличного ограничения. Это 
полезно в тех случаях, когда вы хотите включить более одного поля строки в условие.
Предположим что комиссионные 0.15 и выше, будут разрешены только для продавца из 
Барселоны. Вы можете указать это со следующим табличным ограничением 
CHECK

Пример 9.
Создание таблицы Продавцы и с проверкой значений полей, 
базирующийся на многочисленых полях 
CREATE TABLE Продавцы2 
( КодПродавца integer NOT NULL PRIMARY KEY
Фамилия char(10) NOT NULL UNIQUE, 


97 
Город char(10) , 
Комиссионные decimal, 
CHECK (Комиссионные < 0.15 OR Город='Барселона')); 
 
Выполните sql-код
. Обновите базу данных и просмотрите созданную таблицу. 
Сохраните sql-запрос под именем 
Пример9.sql
в папке 
ФИО_студента/Лаб4

 
Как вы можете видеть, два различных поля должны быть проверены чтобы
определить, верен предикат или нет. Имейте в виду, что это - два разных поля одной и 
той же строки. Хотя вы можете использовать многочис леные поля, SQL не может 
проверить более одной строки одновременно. Вы не можете, например использовать 
ограничение 
CHECK
чтобы удостовериться что все комиссионные в данном городе 
одинаковы. Чтобы сделать это, SQL должен всякий раз просматривая другие строки 
таблицы, когда вы модифицируете или вставляете строку, видеть, что значение 
комиссионных указано для текущего города. SQL этого делать не умеет. 
Фактически, вы могли бы использовать сложное ограничение
CHECK 
для 
вышеупомянутого, если бы знали заранее, каковы должны быть комиссионные в разных 
городах. 
Самостоятельно
измените ограничение в примере 9 на следующее: 

Если комиссионные равны 0.15 , то будут разрешены только для продавца из 
Лондана 

Если комиссионные равны 0.14 , то будут разрешены только для продавца из 
Барселоны

Если комиссионные равны 0.13 , то будут разрешены только для продавца из 
Сан-Хосе

Если комиссионные равны 0.12 , то будут разрешены только для продавца из 
Нью-Йорка
Вы получили идею. Чем налагать такой комплекс ограничений, вы могли бы 
просто использовать представление с предложением 


Достарыңызбен бөлісу:
1   ...   28   29   30   31   32   33   34   35   ...   40




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет