69701

КЛЮЧІ

Лекция

Информатика, кибернетика и программирование

В той же час, до цього номер 1 був закріплений за Івановим. У нас вийшло, що один і той же номер зіставлений різним клієнтам. Тепер уявимо, що про це нічого не знає оператор, що знаходиться в магазині. Сидоров замовляє монітор LG, але не оплачує його вчасно...

Украинкский

2014-10-09

27.5 KB

0 чел.

Тема 30: КЛЮЧІ

Припустимо, що хтось додав в таблицю CLIENTS запис:

1    Сидоров     Егорова   Ікировоград      80522345111

В той же час, до цього номер 1 був закріплений за Івановим. У нас вийшло, що один і той же номер зіставлений різним клієнтам. Тепер уявимо, що про це нічого не знає оператор, що знаходиться в магазині. Сидоров замовляє монітор LG, але не оплачує його вчасно (а, може, і зовсім передумав його купувати). Проходить якийсь час, і всі забувають, хто саме замовив монітор: Іванов або Сидоров — адже в таблиці замовлень коштує номер 1, який асоціюється з обома клієнтами.

Щоб уникнути подібної плутанини, потрібно використовувати первинні ключі:

ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_NO);

Після цього запиту поле C_NO може містити тільки унікальні значення. Як первинний ключ не можна використовувати поле, що допускає значення NULL. Створити первинний ключ можна простіше — при створенні таблиці. Це робиться так:

CREATE   TABLE   CLIENTS (

C_NO        int        NOT   NULL,
FI0 char(40) NOT   NULL

ADDRESSchar(30) NOT NULL, CITY char(15) N0T NULL, PHONE char(ll) NOT NULL, PRIMARY   KEY    (C_NO);

Таблиця ORDERS містить відомості про замовлення. По полю C_NO цієї таблиці ідентифікується замовник. Припустимо, що в таблицю ORDERS хтось ввів значення, якого немає в таблиці CLIENTS. Хто ж замовив товар? Нам потрібно не допустити подібної ситуації, тому введіть наступний запит:

ALTER TABLE ORDERS

ADD FOREIGN KEY(C_NO) REFERENCES CLIENTS;

Введені в таблицю ORDERS номера клієнтів C_NO повинні існувати в таблиці CLIENTS. Аналогічно потрібно додати зовнішній ключ по полю T_NO. Ця можливість називається декларативною цілісністю.

Команда ALTER використовується не тільки для додавання ключів. Вона призначена для реорганізації таблиці в цілому. Ви хочете додати ще одне поле? Або встановити список допустимих значень для кожного з полів. Все це можна зробити за допомогою команди ALTER:

ALTER   TABLE   CLIENTS ADD   ZIP   char(6)   NULL;

Цей оператор додає в таблицю CLIENTS нове поле ZIP типу char. Звернете увагу, що ви не можете додати нове поле із значенням NOT NULL в таблицю, в якій вже є дані. Наша компанія працює з клієнтами тільки з Києва і Кіровограда, тому доцільно ввести список допустимих значень для таблиці CLIENTS:

ALTER   TABLE   CLIENTS

ADD   CONSTRAINT   INVALID_STATE   SHECK    (CITY   IN    ('Кировоград','Киев'));


 

А также другие работы, которые могут Вас заинтересовать

6804. Автоматизация разметки блок-схем алгоритмов 84.4 KB
  Автоматизация разметки блок-схем алгоритмов. Номер зачётной книжки: 831910 =100000011111112 Алгоритм обнаружения бесконечных циклов: Проверяем все операционные вершины на наличие перехода назад, если есть переход назад - помечаем блок д...
6805. Пасивне мережеве обладнання 109 KB
  Мета роботи: дослідити принципи побудови та функціонування мереж типу Ethernet. Теоретична частина Загальні відомості. Ethernet був започаткований у 1970 році (Dr. Robert M. Metcalfe) в дослідницькому центрі фірми Xerox. Перша система Ethernet...
6806. Ограничения целостности в SQL Oracle 188.5 KB
  Ограничения целостности в SQL Oracle Цели лабораторной работы Изучить возможности SQL Oracle по описанию и поддержанию ограничений целостности. Приобрести практический опыт по описанию ограничений целостности. Теоретические о...
6807. Измерение сопротивления прямым и косвенным методами 68 KB
  Измерение сопротивления прямым и косвенным методами. Подготовка приборов к измерению сопротивления В7-26 Переключатель рода работ перевести в положение r и проверить нулевое положение указателя при замкнутых накоротко гнездах...
6808. Одержання тонкоплівкових структур термічним випаровуванням у вакуумі 66.5 KB
  Одержання тонкоплівкових структур термічним випаровуванням у вакуумі Ціль роботи: ознайомлення з методом осадження тонкоплівкових покриттів з пари речовини, що випаровується у вакуумі. Робота містить у собі одержання металевих плівок методом термічн...
6809. Базова VLAN Конфігурація 572 KB
  Базова VLAN Конфігурація Діаграма топології Таблиця адрес Пристрій (Ім'я хоста) Інтерфейс IP адрес Маска підмережі Шлюз по замовчуванню S1 VLAN 99 172.17.99.11 255.255.255.0 N/A S2 VLAN....
6810. Параметрична ідентифікація параметрів з використанням функцій чутливості 116.93 KB
  Параметрична ідентифікація параметрів з використанням функцій чутливості. Для математичної моделі коливання трьох мас, які поєднані між собою пружинами з відповідними жорсткостями, і відомої функції спостереження координат моделі потрі...
6811. Data manipulation in SQL Oracle 110 KB
  Data manipulation in SQL Oracle Purpose of the lab To study SQL Oracle possibilities in inserting, updating and deleting rows in a tables. To acquire practical skills in inserting, updating and deleting rows in a tables by using SQ...
6812. Манипулирование данными в SQL Oracle 121 KB
  Манипулирование данными в SQLOracle Цели лабораторной работы Изучить возможности SQL Oracle по вставке, обновлению и удалению строк в таблице. Приобрести практический опыт по вставке, обновлению и удалению строк в таблице с и...