Главная
Случайная страница
Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Введіть quit в рядку запрошення mysql>, щоб вийти з програми клієнта mysql
5. Якщо ключове поле не додано при створенні таблиці, то це можна зробити за допомогою запита:
ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_NO);
6. Використання зовнішніх ключів Створення зовнішнього ключа
ALTER TABLE ORDERS ADD FOREIGN KEY (C_NO) REFERENCES CLIENTS;
Тепер заглибимося у вивчення SQL. Ви вже знаєте, як додавати первинний ключ, тепер додамо зовнішній ключ при створенні таблиці. Зовнішні ключі використовуються для зв'язку однієї таблиці з іншою. Наприклад, у таблиці CLIENTS у нас є два клієнти - Іванов (C_NO = 1) і Петров (C_NO = 2). Оператор в магазині при оформленні замовлення помилився і вказав неіснуючий номер, наприклад, C_NO = 3. Як ми потім зможемо ідентифікувати клієнта? Для вирішення такої проблеми і існують зовнішні ключі: CREATE TABLE T ( / * Опис полів таблиці * / FOREING KEY KEY_NAME (LIST) REFERENCES ANOTHER_TABLE [(LIST2)] [ON DELETE OPTION] [ON UPDATE OPTION] ); Тут: • KEY_NAME - Ім'я ключа. Ім'я не є обов'язковим, але рекомендується завжди вказувати ім'я ключа - якщо ви не вкажете ім'я ключа, ви потім не зможете його видалити; • LIST - це список полів, що входять в зовнішній ключ. • ANOTHER_TABLE - це інша таблиця, за якою встановлюється не зовнішній ключ, а необов'язковий елемент; • LIST2 - це список полів цієї таблиці. Типи полів у списку LIST повинні збігатися з типами полів у списку LIST2. Припустимо, що в першій таблиці у нас є поля - NO і NAME - цілого і символьного типу відповідно. У другій таблиці у нас є поля з однаковими іменами та типами. Визначення зовнішнього ключа: FOREIGN KEY KEY_NAME (NO, NAME) REFERENCES ANOTHER_TABLE (NAME, NO) Це визначення некоректно, тому що типи полів NO і NAME не збігаються. Потрібно використовувати таке визначення: FOREIGN KEY KEY_NAME (NO, NAME) REFERENCES ANOTHER_TABLE (NO, NAME) [ON DELETE <OPTION>] [ON UPDATE <OPTION>] Якщо поля мають одинакові імена, як у нашому випадку, список LIST2 краще взагалі не вказувати. Необов'язкові параметри ON DELETE <OPTION> і ON UPDATE <OPTION> визначають дію з оновлення інформації в базі даних, при видаленні інформації з таблиці і при її оновленні. А дії можуть бути наступними: • CASCADE - видалення або оновлення значення скрізь, де воно зустрічається. Наприклад, у нас є таблиця клієнтів і замовлень. Ми хочемо видалити запис клієнта з номером C_NO = 1. З таблиці замовлень будуть видалені відомості про всі замовлення, зроблених клієнтом; • NOACTION - ви не зможете видалити інформацію з таблиці клієнтів до тих пір, поки ви не видалите всі замовлення, зроблені цим клієнтом. Тобто дія NOACTION забороняє видаляти запис з основної таблиці, якщо вона використовується в дочірній таблиці; • SETNULL - всі значення в дочірній таблиці будуть замінені на NULL (якщо значення NULL допускаються); • За допомогою параметра SET_DEFAULT ви можете вказати значення за замовчуванням. Наприклад, якщо ви встановлюєте SET_DEFAULT 1, то при видаленні клієнта з будь-яким номером його замовлення будуть приписуватися клієнту з номером 1, який є в таблиці CLIENTS.
Приклад1: ALTER TABLE abonent ADD FOREIGN KEY (phone) REFERENCES phone (Id) ON DELETE CASCADE ON UPDATE CASCADE;
Приклад 2:
Видалення полів і таблиць. Оператор DROP Стандартом SQL не передбачено видалення стовпців, проте в MySQL ми це можемо зробити: ALTER TABLE CLIENTS DROP ZIP; А видалити таблицю ще простіше: DROP ORDERS; 8. Відключення від СУБД Використовуючи запит DISCONNECT можна відключитися від використовуваної бази даних, а потім, використовуючи запит CONNECT, підключитися до іншої базі даних. У деяких серверах SQL запит DISCONNECT не працює, а замість CONNECT застосовується запит USE.
Приклад1: use basa_name;
|