Язык манипулирования данными. Data Manipulation Language, DML презентация

Содержание

Слайд 2

Пример простой схемы БД Столбцы таблицы Salespeople (Продавцы)

Пример простой схемы БД

Столбцы таблицы Salespeople (Продавцы)

Слайд 3

Пример простой схемы БД

Пример простой схемы БД

Слайд 4

Пример простой схемы БД Столбцы таблицы Customers (Покупатели)

Пример простой схемы БД

Столбцы таблицы Customers (Покупатели)

Слайд 5

Пример простой схемы БД

Пример простой схемы БД

Слайд 6

Пример простой схемы БД Столбцы таблицы Orders (Заказы)

Пример простой схемы БД

Столбцы таблицы Orders (Заказы)

Слайд 7

Пример простой схемы БД

Пример простой схемы БД

Слайд 8

Пример простой схемы БД

Пример простой схемы БД

Слайд 9

Подразделы SQL

Подразделы SQL

Слайд 10

Язык манипулирования данными Команды Data Manipulation Language (DML) для работы

Язык манипулирования данными

Команды Data Manipulation Language (DML) для работы с таблицами:
INSERT

— вставка строк в таблицу
UPDATE — изменение значений полей
DELETE — удаление строк из таблицы
Слайд 11

Ввод значений в таблицы Форма оператора INSERT: Данные вводятся в

Ввод значений в таблицы

Форма оператора INSERT:
Данные вводятся в таблицу в порядке

их перечисления
Пример ввода строки в таблицу Salespeople:

INSERT INTO table_name (list_of_columns)
VALUES (list_of_values);

INSERT INTO Salespeople (snum, sname, city, comm)
VALUES (1001, 'Peel', 'London', .12);

Слайд 12

Ввод значений в таблицы Список столбцов может быть опущен Пример

Ввод значений в таблицы

Список столбцов может быть опущен
Пример ввода строки в

таблицу Salespeople:
для определения порядка столбцов в таблице используйте:
DESCRIBE table_name

INSERT INTO Salespeople
VALUES (1001, 'Peel', 'London', .12);

Слайд 13

Ввод неопределенных значений NULL может явно вводиться в поле так

Ввод неопределенных значений

NULL может явно вводиться в поле так же, как

обычное значение:
Поле не должно иметь ограничения NOT NULL

INSERT INTO Salespeople
(snum, sname, city, comm)
VALUES (1001, 'Peel', NULL, .12);

Слайд 14

Ввод значений по умолчанию Можно вводить в поле значение по

Ввод значений по умолчанию

Можно вводить в поле значение по умолчанию:
Перед вставкой

для поля должно быть установлено значение по умолчанию (DEFAULT)

INSERT INTO Salespeople
(snum, sname, city, comm)
VALUES (1001, 'Peel', DEFAULT, .12);

Слайд 15

Ввод неопределенных значений Неявный метод: Если столбец не указан в

Ввод неопределенных значений

Неявный метод:
Если столбец не указан в списке столбцов –

его значение для записи будет NULL (или DEFAULT)
В примере не указан столбец rating:
Поле не должно иметь ограничения NOT NULL

INSERT INTO Customers
(cnum, cname, city, snum)
VALUES (2009, ‘Bond', London, 1001);

Слайд 16

Значения по умолчанию и NULL Оператор INSERT, не содержащий значения

Значения по умолчанию и NULL

Оператор INSERT, не содержащий значения для

столбца
вставит NULL, если столбец не содержит ограничения NOT NULL и предложения DEFAULT
вставит значение по умолчанию, если столбец содержит предложение DEFAULT
выдаст ошибку, если столбец содержит ограничение NOT NULL, а значение по умолчанию не указано
Слайд 17

Вставка даты При вставке даты можно использовать: SYSDATE – текущая дата TO_DATE(…) – конкретная дата

Вставка даты

При вставке даты можно использовать:
SYSDATE – текущая дата
TO_DATE(…) – конкретная

дата
Слайд 18

Вставка результатов запроса Оператор INSERT можно использовать для вставки результатов

Вставка результатов запроса

Оператор INSERT можно использовать для вставки результатов запроса:
Пример

перемещения значений из одной таблицы в другую:

INSERT INTO Londonstaff
SELECT * FROM Salespeople
WHERE city = 'London';

INSERT INTO table_name (list_of_columns)
query;

Слайд 19

Вставка сразу нескольких записей Для вставки нескольких записей в одну

Вставка сразу нескольких записей

Для вставки нескольких записей в одну таблицу используйте

INSERT ALL

INSERT ALL INTO table_name (list_of_columns)
VALUES (list_of_values);
INTO table_name (list_of_columns)
VALUES (list_of_values);
INTO table_name (list_of_columns)
VALUES (list_of_values);
...

Слайд 20

Создание новой таблицы Создать новую таблицу и скопировать все данные

Создание новой таблицы

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

CREATE

TABLE new_table AS SELECT * FROM old_table;
Слайд 21

Задания на INSERT Добавить покупателя Bush из Вашингтона c привязкой

Задания на INSERT

Добавить покупателя Bush из Вашингтона c привязкой к продавцу

Bond
Добавить по одному заказу каждому продавцу с любой датой текущего года
Добавить два заказа от текущей даты для покупателя Bush и созданного продавца Bond
Добавить нового продавца Freddy из Нью-Йорка с комиссионными равными максимальным комиссионным продавцов + 0,05
Добавить дополнительный заказ для каждого покупателя, которые делали заказ из Лондона. Сумма нового заказа в полтора раза больше прошлого. Новый заказ провести датой на месяц позднее даты прошлого заказа.
Слайд 22

Изменение значений полей Изменение всех или некоторых значений в существующих

Изменение значений полей

Изменение всех или некоторых значений в существующих строках выполняется

с помощью оператора UPDATE:

UPDATE имя таблицы
SET { имя столбца = { выражение
| NULL
| DEFAULT }
}.,..
[ { WHERE предикат } ];

Слайд 23

Изменение значений полей Пример обновления значений поля для всех строк

Изменение значений полей

Пример обновления значений поля для всех строк таблицы Customers:
Пример

обновления значений поля для отдельных строк таблицы Customers:

UPDATE Customers
SET rating = 200;

UPDATE Customers
SET rating = 200
WHERE snum = 1001;

Слайд 24

Изменение значений полей Пример обновления значений группы полей для отдельной

Изменение значений полей

Пример обновления значений группы полей для отдельной строки таблицы

Salespeople:
Не разрешается обновлять несколько таблиц в одном операторе UPDATE

UPDATE Salespeople
SET sname = 'Gibson',
city = 'Boston',
comm = .10
WHERE snum = 1004;

Слайд 25

Изменение значений полей В предложении SET оператора UPDATE разрешается применять

Изменение значений полей

В предложении SET оператора UPDATE разрешается применять выражения:
Разрешается обновлять

до NULL-значений или значений по умолчанию:

UPDATE Salespeople
SET comm = comm * 2;
WHERE city = 'London';

UPDATE Customers
SET rating = NULL, city = DEFAULT
WHERE snum = 1001;

Слайд 26

Изменение значений полей с подзапросами Обновление с помощью многостолбцового подзапроса

Изменение значений полей с подзапросами

Обновление с помощью многостолбцового подзапроса

UPDATE Salespeople
SET

(city, comm) = (SELECT city, comm
FROM Salespeople
WHERE snum = 1001)
WHERE snum = 1008;
Слайд 27

Изменение значений полей с подзапросами Обновление строк таблицы на основе

Изменение значений полей с подзапросами

Обновление строк таблицы на основе значений из

других таблиц:

UPDATE Salespeople
SET city = (SELECT city
FROM Customers
WHERE cnum = 2008)
WHERE snum =
(SELECT snum
FROM Customers
WHERE cnum = 2008);

Слайд 28

Контроль целостности при изменении Если вы пытаетесь обновить запись и

Контроль целостности при изменении

Если вы пытаетесь обновить запись и новое значение

столбца противоречит ограничению, выдается сообщение об ошибке:

UPDATE Orders
SET snum = 1017 WHERE snum = 1007;

ORA-02291: integrity constraint (WATER.FK_ORDERS_SALESPEOPLE) violated - parent key not found

Слайд 29

Задания на UPDATE Для всех покупателей продавца Peel выставить рейтинг

Задания на UPDATE

Для всех покупателей продавца Peel выставить рейтинг 100
Передать всех

покупателей продавца Peel продавцу Motika и увеличить рейтинг данных покупателей на 50
Увеличить на 100 рейтинг покупателей, которые совершили покупки на сумму выше средней за последний год
Уменьшить в два раза комиссионные для всех продавцов, которые имеют общую сумму заказов меньше 100 за последний год
Слайд 30

Удаление строк из таблицы Для удаления строк из таблицы используется

Удаление строк из таблицы

Для удаления строк из таблицы используется команда DELETE:
Пример

удаления всех строк из таблицы:

DELETE FROM имя таблицы
[ { WHERE предикат } ];

DELETE FROM Salespeople;

Слайд 31

Удаление строк из таблицы Удаление определенных строк, для указания которых

Удаление строк из таблицы

Удаление определенных строк, для указания которых используются предикаты:

DELETE

FROM Salespeople WHERE snum = 1003;

DELETE FROM Salespeople WHERE city = 'London';

Слайд 32

Удаление строк из таблицы с подзапросами Для удаления определенных строк

Удаление строк из таблицы с подзапросами

Для удаления определенных строк на основе

значений из другой таблицы используйте подзапросы в операторе DELETE

Задание:
Удалить все заказы из таблицы Orders, выполненные продавцами из Лондона

Имя файла: Язык-манипулирования-данными.-Data-Manipulation-Language,-DML.pptx
Количество просмотров: 99
Количество скачиваний: 0