КЛЮЧІ Припустимо, що хтось додав в таблицю 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 ('Кировоград','Киев'));