Зміст бази даних змінюють три оператора SQL:
INSERT - додає нові рядки;
DELETE – видаляє рядки;
UPDATE - оновлює дані.
В реляційних СКБД існує три способи добавити нові рядки в БД:
- однорядкові оператор INSERT дозволяє добавити в таблицю один новий рядок;
- багаторядковий оператор INSERT пересилає рядки з однієї таблиці до іншої;
- утиліта пакетного завантаження додає в таблицю дані з зовнішнього файлу.
Синтаксична діаграма однорядкового оператора INSERT
Рядки в таблиці не впорядковані, тому новий рядок в таблиці результатів запитів може знаходитись в будь-якому місці.
Якщо користувач заповнює новий рядок особистої таблиці, то в операторі INSERT визначає просте ім’я таблиці. Щоб вставити новий рядок в таблицю іншого користувача треба записати повне ім’я таблиці.
Список стовпчиків в операторі INSERT встановлює відповідність між значеннями даних і стовпчиками. Усім стовпчикам, імена яких відсутні в списку, автоматично присвоюється значення NULL.
Якщо список стовпчиків взагалі відсутній, він генерується автоматично і в ньому зліва направо перераховуються всі стовпчики таблиці. Наприклад, заповнити інформацією про нового службовця
|
|
INSERT INTO
SALESREPS (NAME, AGE, HIRE_DATE, REP_OFFICE)
VALUES (“Петров”, 36, “25-JUL-01”, 13)
Синтаксична діаграма багаторядкового оператора INSERT
Синтаксична діаграма оператора DELETE
Наприклад, видалити інформацію про Петрова
DELETE FROM SALESREPS
WHERE NAME = “Петров”
Опція WHERE може визначити як один рядок, так і декілька – в залежності від конкретної умови.
Якщо опція WHERE взагалі відсутня, то видаляються всі рядки таблиці.
Наприклад, видалити всі закази
DELETE FROM ORDERS
Синтаксична діаграма оператора UPDATE
Опція WHERE визначає рядки таблиці, які належить оновити. Опція SET визначає значення яких стовпчиків поновлюється і самі ці значення.
Кожний стовпчик може зустрічатися в списку лише один раз.
Приклади.
1. Визначити особистий план в 200 грв. всім службовцям, які в дійсний час не мають плана.
UPDATE SALESREPS
SET QUOTA = 200.00
WHERE QUOTA IS NULL
2. Перевести всіх службовців з офісу код якого 13, в офіс з кодом 11 і зменшити їх особисті плани на десять відсотків.
UPDATE SALESREPS
SET REP_OFFICE = 11, QUOTA = 0.9 * QUOTA
WHERE REP_OFFICE = 13
3. Якщо опція WHERE в операторі UPDATE відсутня, то оновлюються всі рядки таблиці.
Наприклад, збільшити всі особисті плани на п’ять відсотків.
UPDATE SALESREPS
SET QUOTA = 1.05 * QUOTA
Хід роботи
По кожному завданню визначити:
1. Аналіз умови завдання;
2. Записати оператор;
3. Аналіз виконаної роботи.
Завдання до л.р.№3
Для кожної таблиці, структуру якої визначили в лабораторній роботі №1:
1. Записати декілька рядків визначивши всі стовпчики;
|
|
2. Записати декілька рядків визначивши не всі стовпчики;
3. Навести приклад видалення рядка;
4. Навести приклад корегування значень рядка.