- •4.1. Історія мови sql та огляд її можливостей
- •4.2. Засоби пошуку даних
- •4.2.1. Основні конструкції мови, призначені для вибирання даних
- •4.2.2. Вирази, умови та оператори
- •4.2.3. Вибирання з кількох таблиць
- •4.2.4. Використання агрегатних функцій
- •4.2.5. Фраза group by. Групування таблиці за рядками
- •4.2.6. Фраза having. Умова вибирання для груп рядків
- •4.2.7. Фраза order by. Впорядкування рядків
- •4.2.8. Порядок обчислення запитів
- •4.2.9. Підзапити
- •4.2.10. Використання предикатів any, all, exists та in
- •4.2.11. Використання теоретико-множинних операторів
- •4.2.12. Запити, в яких реалізується квантор загальності
- •4.2.13, Використання невизначених значень
- •4.3. Засоби маніпулювання даними
- •4.3.1. Додавання рядків до таблиці. Оператор insert
- •4.3.2. Оновлення даних. Оператор update
- •4.3.3. Видалення рядків таблиці. Оператор delete
- •4.4. Операції над схемою бази даних
- •4.4.1. Створення бази даних. Оператор create database
- •4.4.2. Створення таблиці. Оператор create table
- •4.5.2. Використання індексів
- •4.6. Транзакції
- •4.6.1. Початок і завершення транзакції
- •4.6.2. Скасування транзакції. Точки збереження
- •4.7. Тригери
- •4.8. Додаткові можливості
4.3.2. Оновлення даних. Оператор update
Оператор UPDATE надає можливість змінювати значення у наявних рядках. Його синтаксис такий:
UPDATE <ім'я таблиці>
SET <поле 1> = <вираз 1>
[. <поле 2> = <вираз 2>]...
[WHERE <умова пошуку>]
Оновлення за умовою
Усі рядки таблиці, які задовольняють задану у фразі WHERE умову, змінюються згідно з фразою SET.
Запит 4.41
Встановити фонд факультету інформатики рівним 250 300.
UPDATE ФАКУЛЬТЕТ
SET Фонд = 250300
WHERE Назва = "інформатики"
Безумовне оновлення
Якщо фразу WHERE не задано, то оновлюються всі рядки.
Запит 4.42
Встановити фонд усіх факультетів рівним 260 500.
UPDATE ФАКУЛЬТЕТ SET Фонд = 26050
Неконстантне оновлення
Стовпцю може присвоюватися не константа, а вираз, що обчислюється на поточному рядку.
Запит 4.43
Збільшити всім факультетам фонд фінансування на 10 %.
UPDATE ФАКУЛЬТЕТ
SET Фонд = Фонд + Фонд/10
Запит 4.44
Збільшити всім кафедрам факультету інформатики фонд фінансування на 5 %.
UPDATE КАФЕДРА
SET Фонд = Фонд + Фонд/20
WHERE #F IN (SELECT #F
FROM ФАКУЛЬТЕТ
WHERE ФАКУЛЬТЕТ.Назва = "інформатики")
4.3.3. Видалення рядків таблиці. Оператор delete
Оператор DELETE дає змогу видаляти рядки таблиці й має такий синтаксис:
DELETE FROM <ім'я таблиці> [WHERE умова]
Залежно від наявності та змісту фрази WHERE можна видалити один рядок, множину рядків, усі рядки або не видалити жодного.
Назвемо кілька особливостей використання оператора DELETE.
Оператор не дає змоги видаляти окремі поля (використовуйте для цього оператор UPDATE), видаляючи рядок повністю.
Застосування оператора DELETE, як і INSERT та UPDATE, може призвести до порушення цілісності бази даних.
Якщо у фразі WHERE використовується вкладений підзапит, то у фразі FROM цього підзапиту не можна зазначати таблицю, з якої видаляються рядки. Це стосується також операторів INSERT та UPDATE.
Оператор видаляє лише рядки таблиці, а не саму таблицю. Для видалення всієї таблиці слід застосувати оператор DROP TABLE.
Наведемо приклади.
Запит 4.45 .
Видалити відомості про лекції, що читаються в суботу та неділю.
DELETE FROM ЛЕКЦІЯ
WHERE День IN ("субота"."неділя")
Запит 4.46 ______
Видалити всі рядки з реляційного відношення ПРЕДМЕТ.
DELETE FROM ПРЕДМЕТ
Запит 4„47 . __ —
Видалити з таблиці ПРЕДМЕТ ті предмети, з яких не читається лекцій.
DELETE FROM ПРЕДМЕТ
WHERE #S != ALL (SELECT #S
FROM ЛЕКЦІЯ)
4.4. Операції над схемою бази даних
У цьому підрозділі ми вивчимо можливості мови SQL щодо створення баз даних і таблиць, а також розглянемо основні операції маніпулювання даними: зміна структури таблиці, додавання та видалення стовпців і рядків, видалення таблиці та бази даних.
4.4.1. Створення бази даних. Оператор create database
Операція створення бази даних може бути або елементарною дією, або ж вимагати складних маніпуляцій, залежно від потреб користувача та обраної СКБД. Багато сучасних СКБД оснащені графічними засобами, що дають змогу визначати схему бази, проте універсальним способом створення бази даних є застосування операторів SQL. Синтаксис типового оператора створення бази даних є таким:
CREATE DATABASE <ім'я бази даних>
Оскільки синтаксис цього оператора змінюється залежно від системи, ми його не будемо деталізувати. У більшості СКБД оператор CREATE DATABASE дає змогу виконати такі основні дії:
делегувати повноваження на створення бази даних тому чи іншому користувачу;
визначити місце (диск, каталог), де розташовуватиметься база даних;
зарезервувати певний обсяг дискового простору для подальшого зберігання рядків таблиць та іншої інформації.
