Огляд можливостей маніпуляції даними - студопедія

Мова маніпуляцій даними (DML) є частиною SQL, що забезпечує користувачеві бази даних можливість вносити реальні зміни в дані реляційної бази даних. За допомогою DML користувач може поповнювати таблиці новими даними, оновлювати вже наявні дані і видаляти їх з таблиць. За допомогою команд DML можна також виконувати і деякі типи запитів.

В SQL є три основних команди DML:

INSERT UPDATE DELETE

Команда SELECT, яку теж можна використовувати з командами DML, буде обговорюватися детально в ході уроку 7, «Знайомство з запитами».

Заповнення таблиць новими даними

Заповнення таблиці даними - це процес введення нових даних в таблицю або вручну за допомогою окремих команд, або автоматично за допомогою програм або будь-яким іншим способом.

Те, які дані і в якій кількості можна буде при цьому вводити в таблицю, залежить від багатьох факторів, основними з яких є обмеження, задані при визначенні таблиці, фізичні розміри таблиці, типи даних її стовпців, ширина стовпців, вимоги цілісності у вигляді ключів і зовнішніх ключів. У наступних розділах ми обговоримо особливості процесу введення даних в таблиці, розглянувши ряд відповідних рекомендацій і застережень.

Не забувайте, що оператори SQL можуть використовувати як символи нижнього регістра, так і символи верхнього. Внаслідок способу зберігання операторів в базі даних, вони від вибору регістра букв не залежать. У наступних прикладах букви нижнього і верхнього регістрів використовуються тільки для того, щоб показати, що це не впливає на результат.

Введення даних в таблицю

Щоб ввести нові дані в таблицю, використовуйте оператор INSERT. Як зрозуміло з показаного нижче його базового виду, оператор INSERT має кілька опцій.

insert into ім'я схеми.імя таблиці VALUES ( 'значення1', 'значення2', [NULL]);

Відповідно до представленого тут синтаксису оператора INSERT, в список VALUES ви повинні помістити значення для всіх стовпців відповідної таблиці. Значення в списку розділяються комами. Символьні значення і значення дат повинні бути укладені в лапки. Для числових значень і порожніх значень, що задаються ключовим словом NULL, лапки не потрібні. Повинні бути вказані значення для всіх стовпців таблиці.

У наступному прикладі новий запис вводиться в таблицю PRODUCTS_TBL.

Приклад використання оператора INSERT:

INSERT INTO PRODUCTS_TBL VALUES ( '7725', 'ШКІРЯНІ РУКАВИЧКИ', 24.99);

У цьому прикладі вводяться три значення в таблицю з трьома стовпцями. Порядок вводятьсязначень відповідає порядку стовпців в таблиці. Перші два значення укладені в лапки, оскільки тип даних відповідних стовпців є символьним. Третє значення, асоційоване зі стовпцем COST, має числовий тип даних і тому не вимагає лапок, хоча їх можна використовувати і в цьому випадку.

В даному прикладі не було вказано ім'я схеми або власника таблиці. Ім'я схеми не потрібно, якщо ви увійшли в базу даних як користувач, який є власником відповідної таблиці.

Введення даних в певні стовпці таблиці

Є можливість ввести дані не в усі, а тільки в певні стовпці, наприклад, якщо потрібно ввести всю інформацію про службовця, крім номера його пейджера. В цьому випадку в операторі INSERT разом зі списком значень VALUES потрібно вказати і список відповідних їм стовпців.

Синтаксис оператора для введення значень в обрані стовпці таблиці наступний:

INSERT INTO ІМЯ_СХЕМИ.ІМЯ_ТАБЛІЦИ ( 'СТОЛБЕЦ1', 'СТОЛБЕЦ2')

VALUES ( 'значення1', 'значення2');

У наступному прикладі в таблицю ORDERS_TBL вводяться значення тільки для деяких стовпців.

Приклад використання оператора INSERT:

insert into orders_tbl (ord_num, cust_id, prod_id, qty) VALUES ( '23A16', '409', '7725', 2);

Тут після імені таблиці в дужках вказаний список стовпців. Це список усіх стовпців, в які вводяться дані. В даному випадку в списку немає тільки стовпці ORD_DATE. З визначення таблиці видно, що стовпець ORD_DATE не вимагає обов'язкової наявності даних в кожному рядку, оскільки у визначенні таблиці для цього стовпця не вказано NOT NULL. NOT NULL означає, що порожні значення для стовпця не допускаються. Порядок в списку значень повинен відповідати порядку введення значень в таблицю, що задається списком стовпців.

Список стовпців в операторі INSERT не обов'язково повинен відповідати списку стовпців ввизначенні відповідної таблиці, а ось список вводятьсязначень повинен обов'язково відповідати списку обраних стовпців

Введення даних з іншої таблиці

У таблицю можна вводити дані, отримані в результаті запиту до іншої таблиці, скориставшись комбінацією операторів INSERT і SELECT. Коротко кажучи, запит - це звернення до бази даних, що має на меті одержання даних. Запит можна порівняти з питанням користувача до бази даних, а повернуті дані - з отриманою відповіддю. Якщо скомбінувати оператори INSERT і SELECT, є можливість ввести в таблицю дані, отримані в результаті запиту.

Синтаксис оператора для введення даних з однієї таблиці в іншу наступний:
insert into імя_схеми.імя_табліци [( 'столбец1', 'столбец2')] select [* | ( 'Стовпець!', 'Столбец2')]

from ім'я_таблиці [where умови];

Тут ви бачите три нових ключових слова SELECT, FROM і WHERE. SELECT є основною командою для побудови запитів в SQL. За допомогою FROM в запиті вказуються імена таблиць, в яких необхідно відшукати дані. За допомогою WHERE в запитах задаються умови, що визначають суть запиту. Таким умовою може бути, наприклад, WHERE NAME = 'SMITH'. Використання цих трьох ключових слів докладно обговорюється в ході уроків 7 і 8.

У наступному прикладі використовується простий запит, щоб побачити всі дані таблиці PRODUCTS_TBL. Тут SELECT * говорить серверу бази даних, що необхідно отримати інформацію з усіх стовпців таблиці. А відсутність ключового слова WHERE означає, що необхідно показати всі записи таблиці.

select * from products_tbl;

PROD_ID PROD_DESC COST

11235 КОСТЮМ ВІДЬМИ 29.99

222 ПЛАСТИКОВІ гарбуза 7.75

13 ШТУЧНІ парафінові ЗУБИ 1.1

15 КОСТЮМИ В АСОРТИМЕНТІ 10

9 СОЛОДКА КУКУРУДЗА 1.35

6 гарбузовий ЦУКЕРКИ 1.45

87 ПЛАСТИКОВІ ПАУКИ 1.05

119 МАСКИ В АСОРТИМЕНТІ 4.95

Тисячу двісті тридцять чотири ЛАНЦЮЖОК ДЛЯ КЛЮЧІВ 5.95

2345 полички З ДУБА 59.99

Тепер дані, отримані в результаті цього запиту, введемо в таблицю PRODUCTS_TMP. Ви побачите, що в цій тимчасовій таблиці будуть створені 11 рядків.

INSERT INTO PRODUCTS_TMP SELECT * FROM PRODOCTS_TBL;

Схожі статті