Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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;

Date: 2015-12-11; view: 260; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию