MySql Заняття 4.pptx
- Количество слайдов: 19
Заняття 4. Інструкції маніпуляції з таблицями. Інструкції модифікації даних
Інструкції маніпуляції з таблицями. Інструкції модифікації даних Створення таблиць Обмеження на дані Модифікація таблиць Видалення таблиць Внесення даних Зміна даних Видалення даних
Модифікація структури таблиці. Інструкція ALTER TABLE Змінює структуру існуючої таблиці. Стандарт ANSI SQL не дозволяє змінювати тип даних існуючого стовпця, однак багато СУБД розширяють цю версію ALTER TABLE, і дозволяють змінювати тип стовпця. Зміна імені таблиці: ALTER TABLE <ім’я табл> RENAME TO <нове ім’я табл>;
Додавання нового стовпця: ALTER TABLE <ім’я табл> ADD COLUMN <ім’я стовп> <тип(розмір)>; Видалення стовпця з таблиці: ALTER TABLE <ім’я табл> DROP COLUMN <ім’я стовп>; При цьому видаляються усі дані стовпця. Якщо стовпець є первинним ключем, на який посилається зовнішній ключ з іншої таблиці, то видалення не відбудеться. Спочатку потрібно скоректувати дані в іншій таблиці.
Зміна параметрів існуючого стовпця, таких як тип, розмір, обмеження: ALTER TABLE <ім’я табл> CHANGE COLUMN <ім’я стовп> <нове ім’я стовп> <обмеження>; <тип (розмір)> Приклад 1. Припустимо, що при створенні таблиці Sellers поле sname не містить ніяких обмежень, які треба встановити. Крім цього, треба збільшити розмір цього поля. ALTER TABLE Sellers CHANGE COLUMN sname varchar(55) NOT NULL;
Встановлення обмеження. Приклад 2. Припустимо, що таблиця Customers не має ніяких обмежень таблиці. Необхідно встановити обмеження унікальності для стовпців cnum та snum. ALTER TABLE Customers ADD CONSTRAINT UQ_Customers UNIQUE (cnum, snum); Видалення UNIQUE обмеження: ALTER TABLE Customers DROP INDEX UQ_Customers;
Видалення PRIMARY KEY обмеження: ALTER TABLE Customers DROP PRIMARY KEY; Видалення FOREIGN KEY обмеження: ALTER TABLE Customers DROP FOREIGN KEY FK_Customers_Sellers;
Видалення таблиці Щоб видалити таблицю, необхідно мати права для цього. Перед видаленням таблиці необхідно видалити усе вмістиме таблиці (вимога більшості СУБД, проте не в My. SQL). Якщо таблиця уже порожня, то видалення виконується інструкцією: DROP TABLE <ім’я табл>; Після такої інструкції ім’я таблиці більше не розпізнається, і ніяка інструкція не може бути застосована до цієї таблиці. Тому перш ніж видаляти таблицю, необхідно переконатись, що в неї не було зовнішнього ключа. Інакше, загубляться певні зв’язки.
Мова маніпулювання даними (DML – Data Manipulation Language) Інструкції DML для модифікації даних не повертають дані у вигляді тимчасових результатних таблиць, а змінюють вмістиме вже існуючих таблиць бази даних. Інструкції модифікації даних можуть вміщати вкладені запити на вибірку даних з тієї ж таблиці або з інших таблиць, однак самі не можуть бути вкладені в інші запити: § § UPDATE § INSERT DELETE Примітка: Для коректного виконання усіх інструкцій DML необхідно зняти безпечний режим модифікації даних SET SQL_SAFE_UPDATES = 0.
Основні аргументи інструкцій DML Необхідний оператор (SELECT, INSERT, DELETE або UPDATE); вираз-стовпець – виражає ім’я стовпця або вираз з декількох імен стовпців із даними; Ключове слово FROM; таблиця – ім’я таблиці, для якої здійснюється запит. Ключове слово WHERE; предикат – умовний вираз, який може бути істинним або ні для певного рядка таблиці.
Інструкція внесення даних (INSERT) Найпростіший синтаксис : INSERT INTO <ім’я_табл> VALUES (<зн. стовп 1>, . . . , <зн. стовп. N>); Ім’я таблиці має бути визначеним командою CREATE TABLE. Кожне значення, що додається, має співпадати з типом даних стовпця, в який воно додається. Інструкція не виводить результатів, але СУБД повинна видати підтвердження того, що дані були додані. Якщо необхідно ввести невизначене значення, то у відповідне поле додається значення NULL.
Приклад 3: щоб додати перший рядок у таблицю Sellers, можна використати команду: INSERT INTO Sellers VALUES (1001, 'Peel', 'London', 0. 12); Можна вказувати конкретні стовпці, в які потрібно додати значення. Це дозволяє додавати дані в довільному порядку: INSERT INTO Sellers (snum, sname, comm) VALUES (1001, 'Peel', 0. 12));
У сучасних діалектах SQL з’явилась можливість працювати зі значеннями типу «запис» . Це дозволяє за фразою VALUES вказувати декілька наборів значень у дужках, які необхідно додати. Приклад 4: INSERT INTO Customers (city, cnamе, cnum) VALUES ('London', 'Hoffman', 2001), ('Rome', 'Giovanni', 2002), ('San. Jose', 'Liu', 2003); Поля rating та snum не вказані. Це означає, що дані стовпці будуть встановлені у значення «за замовчуванням» .
Інструкція видалення записів (DELETE) Інструкція видаляє цілі рядки таблиці, а не індивідуальні значення полів. Наприклад, щоб видалити все вмістиме таблиці Sellers, можна використати команду: DELETE FROM Sellers; Якщо необхідно видалити певні рядки з таблиці, використовують атрибут WHERE. Наприклад, щоб видалити продавця Axelrod, можна ввести: DELETE FROM Sellers WHERE snum = 1003; Тут вказано поле snum, а не поле sname, оскільки використання первинних ключів надійно забезпечує видалення лише одного рядка. Примітка: Після видалення усіх рядків таблиці необхідно «обнуляти» автоінкементоване значення первинного ключа (ALTER TABLE <ім’я табл> AUTO_INCREMENT = 1)!
Інструкція зміни даних (UPDATE) Інструкція UPDATE змінює значення стовпців. Щоб змінити значення в одному стовпці таблиці, використовується синтаксис: UPDATE <ім’я таблиці> SET <ім’я стовпця> = <значення>; Приклад 5. Замінити рейтинг усіх замовників на 200: UPDATE Customers SET rating = 200;
Якщо потрібно змінити значення використовується фраза WHERE. Приклад 6. Змінити рейтинг на 200 усіх замовників для продавця Peel: UPDATE Customers SET rating = 200 WHERE snum = 1001; стовпця у певному рядку, то
Інструкція зміни даних (UPDATE). Правила використання фрази SET В одній команді можна модифікувати лише одну таблицю. У фразі SET можна використовувати вирази. Приклад 7. Продавцям у Лондоні збільшити їх комісійні у два рази: UPDATE Sellers SET comm = comm * 2 WHERE city = 'London'; Вираз SET не є предикатом. Тому треба вводити NULL значення без синтаксису предикату. Приклад 8. Встановити рейтинг замовників у Лондоні в NULL: UPDATE Сustomers SET rating = NULL WHERE city = 'London';
Завдання 1. Написати приклади вивчених інструкцій для власної бази даних Написати такі інструкції: § Зміна імені 1 таблиці; § Додання 1 стовпця в будь-яку таблицю; § Зміна типу даних для доданого стовпця; § Додання нового обмеження унікальності на даний стовпець; § Видалення цього обмеження унікальності; § Видалення створеного стовпця.
Створити новий файл скрипта, який дозволить почергово заповнити даними створену базу даних. Примітка: Спочатку писати інструкції, які заповнюють батьківські таблиці (таблиці, які не мають зовнішніх ключів). Дочірні таблиці повинні містити мінімум 15 -20 записів. Батьківські – мінімум 2 записи. Після виконання даного скрипта написати інструкції для модифікації одного запису та групи записів, а також для видалення одного із записів із дочірньої таблиці та усіх записів цієї таблиці. даними
MySql Заняття 4.pptx