
ЛК_13_Presentation_SQL_DML_Stud2013_12_2.pptx
- Количество слайдов: 25
Базы данных и информационные системы Data Manipulation Language (DML) Лекция 13
План занятия Общая информация (DML) 1. INSERT 2. UPDATE 3. DELETE Заключение 2 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Исходная схема Рисунок 1. 1 – Схема данных (Access) Изменения относительно предыдущей схемы: 1. В отношении Товар_New 2 появилось полн Ср_кол_Сделка 2. Появилась таблица Отчет. Товар2009_2010 3 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Манипуляция данными с использованием DML INSERT – запрос добавления; DELETE – запрос удаления; UPDATE – запрос обновления. Запрос INSERT Добавление одной строки с использованием предложения VALUES Добавление на основе вложенной команды SELECT Формат оператора: INSERT INTO имя_таблицы_ представления [(имя_столбца [, . . . n])] {VALUES (значение[, . . . n])| <SELECT_оператор>} Описание(замечания): Список полей необязателен; Если список полей отсутствует, то значения указываются в том порядке, в каком 4 поля перечислялись при создании таблицы; Типы данных элементов в списке значений должны быть совместимы с типами данных соответствующих столбцов таблицы; Количество элементов в обоих списках должно быть одинаковым В списке значений может быть использовано значение NULL; Должны быть заполнены поля, которые определены как NOT NULL; Поле счетчика (identity, counter) задавать не нужно, оно заполняется автоматически. ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос INSERT Добавление одной строки с использованием предложения VALUES Исходная таблица Товар_New 2 содержит поле Код. Товара - не счетчик Запрос 1. Добавить строку данных в таблицу Товар_New 2, поле Код. Товара - не счетчик (без перечисления столбцов) INSERT INTO Товар_New 2 VALUES (9, 'Шкаф', 'мебель', 'высший', 10000, 'Киев'); (без перечисления столбцов, явное задание NULL) INSERT INTO Товар_New 2 VALUES (9, 'Шкаф', 'мебель', 'высший', NULL, 'Киев'); Замечание! MS Access поддерживает и ‘’ , и " "; MS SQL Server - ‘’; 5 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос INSERT Добавление одной строки (VALUES) Запрос 1(продолжение). Добавить строку данных в таблицу Товар_New 2 (перечисление столбцов, явное задание NULL) INSERT INTO Товар_New 2(Код. Товара, Название, Тип, Сорт, Цена, Город. Товара) VALUES (9, 'Шкаф', 'мебель', 'высший', NULL, 'Киев'); (перечисление столбцов, неявное задание NULL) INSERT INTO Товар_New 2(Код. Товара, Название, Сорт, Тип) VALUES (9, 'Шкаф', 'высший', 'мебель'); Товар_New Код. Товара Тип Сорт 8 Подсвечник интерьер первый 9 6 Название Шкаф мебель высший ХНУРЕ кафедра Інформатики доц. Яковлева О. В. Цена Город. Товара 40, 00 р. Харьков
Запрос INSERT Добавление одной строки (VALUES) Тип «счетчик» MS Access – COUNTER или СЧЕТЧИК MS SQL Server – IDENTITY (1, 1) Поле типа «счетчик» заполняется автоматически (последнее назначаемое значение +1) INSERT INTO Товар_New 2(Название, Сорт, Тип) VALUES ('Шкаф', 'высший', 'мебель'); Access для счетчика допускает прямое присвоение (запросом) INSERT INTO Товар_New 2(Код. Товара, Название, Сорт, Тип) VALUES (9, 'Шкаф', 'высший', 'мебель'); 7 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос INSERT Добавление на основе вложенной команды SELECT Запрос 2. Создайте таблицу Товар_Task (Код. Товара, Название, Тип, Сорт, Цена, Город. Товара, Task 1). Заполнить таблицу Товар_Task данными из таблицы Товар_New 2. Вариант1: Поле Код. Товара в таблице Товар_Task определено как «счетчик» INSERT INTO Товар_Task (Название, Тип, Сорт, Цена, Город. Товара) SELECT Название, Тип, Сорт, Цена, Город. Товара FROM Товар_New 2; Вариант2: Поле Код. Товара в таблице Товар_Task не определено как «счетчик» INSERT INTO Товар_Task (Код. Товара, Название, Тип, Сорт, Цена, Город. Товара) SELECT Код. Товара, Название, Тип, Сорт, Цена, Город. Товара FROM Товар_New 2; 8 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос INSERT Добавление на основе вложенной команды SELECT Запрос 3. Если в таблице Склад данного товара нет, занести код товара в таблицу Склад. Запрос 4. Добавить строку данных в таблицу Товар_Task (поле Код. Товара в таблице Товар_New 2 не определено как «счетчик» ), автоматически определяя значение первичного ключа INSERT INTO Товар_Task (Код. Товара, Название, Сорт, Тип) SELECT MAX(Код. Товара)+1, 'Шкаф', 'высший', 'мебель' FROM Товар_Task ; 9 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Оператор UPDATE применяется для изменения значений в группе записей или в одной записи указанной таблицы. Формат оператора: UPDATE имя_таблицы_представления SET имя_столбца = выражение[, . . . n] [WHERE <условие_отбора>] Описание: Параметр имя_таблицы – это либо имя таблицы базы данных, либо имя обновляемого представления. В предложении SET указываются имена одного и более столбцов, данные в которых необходимо изменить. Предложение WHERE является необязательным. Если оно опущено, значения указанных столбцов будут изменены во всех строках таблицы. Если предложение WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию отбора. Выражение представляет собой новое значение соответствующего столбца и должно быть совместимо с ним по типу данных. 10 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Запрос 5. Измените значение сорт на «первый» для товара с кодом 9 UPDATE Товар_Task SET Сорт='первый' WHERE Код. Товара=9; Запрос 6. Увеличьте цену товаров высшего сорта на 20%. UPDATE Товар_Task SET Цена=Цена*1. 2 WHERE Сорт='высший‘; Запрос 7. Увеличьте цену всех товаров на 20%. (Изменение всех значений в столбце) UPDATE Товар_Task SET Цена=Цена*1. 2; Запрос 8. Измените для товара с кодом 9 значение сорт на «второй» , цену уменьшите на 50%. (Изменение двух столбцов для строк с Код. Товара=9) UPDATE Товар_Task SET Сорт='второй', Цена=Цена/2 WHERE Код. Товара=9; Запрос 9. Уменьшить цену на 10% для товаров с максимальной в данный момент ценой. UPDATE Товар_Task SET Цена=Цена*0. 9 WHERE Цена=(SELECT Max(Цена) FROM Товар_Task); 11 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Обновление в одной таблице на основе данных из другой таблицы Использование подзапроса в WHERE Запрос 10. Уменьшить на 50% значение поля Цена для тех товаров, которых осталось на Складе менее 10. Вариант 1: UPDATE Товар_New 2 SET Цена=Цена*0. 5 WHERE Код. Товара IN (SELECT Код. Товара FROM Склад WHERE Остаток <10); Исходные данные: Товар_New Код. Товара Склад Город. Товар а Название Тип Сорт 1 Стул мебель высший 400, 00 р. 2 Стол мебель первый 200, 00 р. Киев 3 Стул мебель высший 400, 00 р. Киев 4 Диван мебель второй 4 000, 00 р. Харьков 5 Диван мебель высший 8 000, 00 р. Киев 6 Стол мебель второй 400, 00 р. Москва 7 Рамка для фото интерьер высший 150, 00 р. Москва 8 Подсвечник интерьер первый 40, 00 р. Харьков 9 Шкаф мебель высший 10 000, 00 р. Код. Товара Харьков Обновлены 4 записи: Цена Остаток 1 8 2 100 3 45 4 20 5 30 6 2 7 4 8 5 9 0 Киев Товар_New Тип Сорт Стул мебель высший 200, 00 р. Харьков 2 Стол мебель первый 200, 00 р. Киев 3 Стул мебель высший 400, 00 р. Киев 4 Диван мебель второй 4 000, 00 р. Харьков 5 Диван мебель высший 8 000, 00 р. Киев 6 ХНУРЕ кафедра Інформатики доц. Яковлева О. В. Название 1 12 Код. Товара Цена Город. Товара Стол мебель второй 200, 00 р. Москва 7 Рамка для фото интерьер высший 75, 00 р. Москва 8 Подсвечник интерьер первый 20, 00 р. Харьков 9 Шкаф мебель высший 5 000, 00 р. Киев
Запрос UPDATE Обновление в одной таблице на основе данных из другой таблицы Использование подзапроса в WHERE Вариант 2 (не корректный): UPDATE Товар_New 2 SET Цена=Цена*0. 5 WHERE Код. Товара = (select Склад. Код. Товара FROM Склад WHERE Остаток <10 and Товар_New 2. Код. Товара=Склад. Код. Товара); Вариант 3 (лучше): UPDATE Товар_New 2 SET Цена=Цена*0. 5 WHERE Код. Товара=(select min(Склад. Код. Товара) FROM Склад WHERE Остаток <10 and Товар_New 2. Код. Товара=Склад. Код. Товара); 13 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Обновление в одной таблице на основе данных из другой таблицы Использование соединения Запрос 10. Уменьшить на 50% значение поля Цена для тех товаров, которых осталось на Складе менее 10 Transact-SQL (расширение стандарта) В Transact-SQL оператор UPDATE расширяет стандарт за счет использования необязательного предложения FROM. В этом предложении специфицируется таблица, обеспечивающая критерий для операции обновления. Дополнительную гибкость здесь дает использование операций соединения таблиц. UPDATE Товар_New 2 SET Цена=Цена*0. 5 FROM Товар_New 2 INNER JOIN Склад ON Товар_New 2. Код. Товара=Склад. Код. Товара WHERE Остаток <10; Access (расширение стандарта) UPDATE Товар_New 2 INNER JOIN Склад ON Товар_New 2. Код. Товара=Склад. Код. Товара SET Цена=Цена*0. 5 WHERE Остаток <10; 14 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Обновление в одной таблице на основе данных из другой таблицы Использование подзапроса в SET Запрос 11 а. Заполнить поле среднее количество в сделке Ср_кол_Сделка на основе информации в таблице Сделка UPDATE Товар_New 2 SET Ср_кол_Сделка= ; Замечание!!! СУБД Access подзапросы в SET не поддерживает 15 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Запрос UPDATE Обновление в одной таблице на основе данных из другой таблицы Использование подзапроса в SET (для Access) СУБД Access: – UPDATE с подзапросом в SET не поддерживается – для реализации UPDATE с подзапросом в SET используются функции DFirst, DLast Синтаксис: DFirst(поле/выражение, источник данных [, критерий] ) DLast(поле/выражение, источник данных [, критерий] ) Функции DFirst, DLast возвращают первое (соответственно, последнее) значение в указанном поле из таблицы или запроса. Запрос 11 б. Заполнить поле среднее количество в сделке Ср_кол_Сделка на основе информации в таблице Сделка Запрос 11 б разбивается на 2 запроса 1) SELECT Код. Товара, AVG(Кол_во) as AVG_Sdelka FROM Сделка GROUP BY Код. Товара; - данный запрос сохраним, как View_AVG_Sdelka (название запроса м. б. любым) 2) UPDATE Товар_New 2 SET Cр_кол_Cделка=DFirst("AVG_Sdelka", "View_AVG_Sdelka", "Код. Товара="& Код. Товара); 16 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Закрепление Insert, Update Создана таблица Очет. Товар2009_ 2010, которая будет содержать итоговую информацию о проданных товарах в 2009, 2010 годах и разность между 2010 и 2009 годами. Запрос 12. Заполнить таблицу Очет. Товар2009_2010 на основе данных из других таблиц, используя запросы Insert, и Update Для реализации и понимания запроса 12, выполним запросы 12. 1 -12. 6. Запрос 12. 1 Заполните в таблице Очет. Товар2009_ 2010 поле Код. Товара на основе информации в таблице Товар_New 2. Запрос 12. 2 Подсчитайте сколько было продано каждого товара в 2009 г. Запрос12. 2 Код. Товара Запрос12. 3 Кол_во 2009 Код. Товара Кол_во 2010 2 3 2 2 3 5 3 4 10 7 5 5 3 6 9 8 4 7 5 8 ХНУРЕ кафедра Інформатики доц. Яковлева О. В. 10 6 17 1 5 каждого товара в 2010 г. 3 4 Запрос 12. 3 Подсчитайте сколько было продано 1 10 9 1
Закрепление Insert, Update Запрос 12. 4 а Заполните в таблице Очет. Товар2009_2010 поле Кол_во_2009 UPDATE Отчет. Товар2009_2010 SET Кол_во_2009=(SELECT SUM(Кол_во) Кол_во Код. Товара Название _2009 FROM Сделка 1 Стул 3 WHERE YEAR(Дата)=2009 2 Стол 3 3 Стул 5 AND Код. Товара=Отчет. Товар2009_2010. Код. Товара); 4 Диван 1 5 Диван 7 6 Стол 3 Запрос 12. 5 б Заполните в таблице Очет. Товар2009_2010 7 Рамка для фото NULL 8 Подсвечник 4 поля Кол_во_2009, Кол_во_2010 9 Шкаф NULL UPDATE Отчет. Товар2009_2010 SET Кол_во _2010 NULL NULL NULL Разность NULL NULL NULL Кол_во _2010 10 2 4 10 5 9 5 10 1 Разность NULL NULL NULL Кол_во_2009=(SELECT SUM(Кол_во) FROM Сделка Код. Товара 1 WHERE YEAR(Дата)=2009 2 AND Код. Товара=Отчет. Товар2009_2010. Код. Товара), 3 4 Кол_во_2010=(SELECT SUM(Кол_во) 5 FROM Сделка 6 7 WHERE YEAR(Дата)=2010 8 9 AND Код. Товара=Отчет. Товар2009_2010. Код. Товара); Название Стул Стол Стул Диван Стол Рамка для фото Подсвечник Шкаф СУБД Access подзапросы в SET не поддерживает !!! 18 ХНУРЕ кафедра Інформатики доц. Яковлева О. В. Кол_во _2009 3 3 5 1 7 3 NULL 4 NULL
Закрепление Insert, Update Запрос 12. 6 а Заполните в таблице Очет. Товар2009_2010 поле Разность UPDATE Отчет. Товар2009_2010 SET Код. Товара 1 Разность= Кол_во_2010 -Кол_во_2009; 2 3 4 Запрос 12. 6 б Заполните в таблице Очет. Товар2009_2010 5 6 поле Разность 7 UPDATE Отчет. Товар2009_2010 SET 8 9 Разность=ISNULL(Кол_во_2010, 0)-ISNULL(Кол_во_2009, 0); Название Стул Стол Стул Диван Стол Рамка для фото Подсвечник Шкаф Кол_во_2009 3 3 5 1 7 3 NULL 4 NULL Кол_во_2010 Разность 10 7 2 -1 4 -1 10 9 5 -2 9 6 5 NULL 10 6 1 NULL Код. Товара 1 2 3 4 5 6 7 8 9 Название Стул Стол Стул Диван Стол Рамка для фото Подсвечник Шкаф Кол_во_2009 3 3 5 1 7 3 NULL 4 NULL Кол_во_2010 Разность 10 7 2 -1 4 -1 10 9 5 -2 9 6 5 5 10 6 1 1 Функции ISNULL, COALESCE, CASE ISNULL ( check_expression , replacement_value ) COALESCE ( expression [ , . . . n ] ) CASE WHEN (expression 1 IS NOT NULL) THEN expression 1 WHEN (expression 2 IS NOT NULL) THEN expression 2 . . . ELSE expression. N END 19 ХНУРЕ кафедра Інформатики доц. Яковлева О. В. Access IIF(условие, выр1, выр2)
Закрепление Insert, Update Запрос 13. Подсчитайте одним запросом сколько было продано каждого товара в 2009, 2010 годах и Кол_во_ разность. SELECT Код. Товара, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2009, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 Код. Товара Название _2009 2010 Разность 1 Стул 3 10 7 2 Стол 3 2 -1 3 Стул 5 4 -1 4 Диван 1 10 9 5 Диван 7 5 -2 6 Стол 3 9 6 7 Рамка для фото NULL 5 5 8 Подсвечник 4 10 6 9 Шкаф NULL 1 1 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2010, (ISNULL((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 AND Код. Товара=Товар_New 2. Код. Товара), 0) ISNULL((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара), 0)) AS Разность FROM Товар_New 2; СУБД Access функция ISNULL не поддерживается !!! 20 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Закрепление Insert, Update Запрос 14 а. Одним запросом заполнить таблицу Очет. Товар2009_2010 на основе данных из других таблиц, используя только Insert (без Update) INSERT INTO Отчет. Товар2009_2010 SELECT Код. Товара, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2009, (SELECT SUM(Кол_во) Кол_во_ Код. Товара Название _2009 2010 Разность 1 Стул 3 10 7 2 Стол 3 2 -1 3 Стул 5 4 -1 4 Диван 1 10 9 5 Диван 7 5 -2 6 Стол 3 9 6 7 Рамка для фото NULL 5 5 8 Подсвечник 4 10 6 9 Шкаф NULL 1 1 FROM Сделка WHERE YEAR(Дата)=2010 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2010, (ISNULL((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 AND Код. Товара=Товар_New 2. Код. Товара), 0) ISNULL((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара), 0)) AS Разность FROM Товар_New 2; СУБД Access функцию ISNULL не поддерживает !!! 21 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Закрепление Insert, Update (Access) Запрос 14 б. Одним запросом заполнить таблицу Очет. Товар2009_2010 на основе данных из других таблиц, используя только Insert (без Update) INSERT INTO Отчет. Товар2009_2010 SELECT Код. Товара, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2009, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 Кол_во_ Код. Товара Название _2009 2010 Разность 1 Стул 3 10 7 2 Стол 3 2 -1 3 Стул 5 4 -1 4 Диван 1 10 9 5 Диван 7 5 -2 6 Стол 3 9 6 7 Рамка для фото 5 5 8 Подсвечник 4 10 6 9 Шкаф 1 1 AND Код. Товара=Товар_New 2. Код. Товара) AS Кол_во_2010, (IIF((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 AND Код. Товара=Товар_New 2. Код. Товара) IS NOT Null, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2010 AND Код. Товара=Товар_New 2. Код. Товара), 0) IIF((SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара) IS NOT Null, (SELECT SUM(Кол_во) FROM Сделка WHERE YEAR(Дата)=2009 AND Код. Товара=Товар_New 2. Код. Товара), 0)) AS Разность FROM Товар_New 2; 22 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Манипуляция данными с использованием DML Запрос DELETE Оператор DELETE предназначен для удаления группы записей из таблицы. Формат оператора: DELETE FROM имя_таблицы_представления [WHERE <условие_отбора>] Описание: DELETE никогда не ссылается на поля, т. к. удаляет строки; Если предложение WHERE присутствует, удаляются записи из таблицы, удовлетворяющие условию отбора; Если опустить предложение WHERE, из таблицы будут удалены все записи, однако сама таблица сохранится. 23 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Манипуляция данными с использованием DML Запрос DELETE Запрос 10. Удалите из таблице Товар_New товар с кодом 9 DELETE FROM Товар_New WHERE Код. Товара=9; Запрос 11. Удалить все сделки 3 -х годичной давности (2010 г). SQL Server DELETE FROM Сделка WHERE Year(Дата)=Year(GETDATE())-1 MS Access DELETE FROM Сделка WHERE Year(Дата)=Year(NOW())-1 Запрос 12. Удалите из таблице Товар_New все записи DELETE from Товар_New; 24 ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
Задание на самостоятельную проработку материала по теме «DML» (подготовка в самостоятельной работе): Описание исходных данных (рис. 1. 1): В файле Trade_DML_ 2013_11_16 – в качества первичных ключей таблиц Клиент, Товар счетчики не используются, в таблице Сделка используются счетчик; В файле Trade_ DML_Counter_2013_11_16 – в качества первичных ключей таблиц Клиент, Товар, Сделка используются счетчики Задания 1. Необходимо выполнить в СУБД Access для БД «Торговля» все запросы из презентации «Data Manipulation Language (DML)» , которые поддерживаются СУБД Access (update с подзапросами в SET СУБД Access не поддерживает, необходимо использовать функцию DFirst). Замечания! - Перед выполнением заданий создайте копию БД «Торговля» (все запросы DML будут изменять данные); - Запросы презентации демонстрируют работу оператора INSERT в случае, когда ключевые поля счетчики, так и обычные числовые поля. Для их отработки выбирайте соответственно БД Trade_Counter_2013_11_16 или Trade_ 2013_11_16. 2. Самостоятельно выполнить следующие задание для БД «Торговля» (на основе Trade_ 2013_11_16): 1. Добавьте в отношение-экземпляр Товар информацию о новом товаре: Код. Товара: 11, Название: «Книжная полка» , Тип: «мебель» . Остальная информация о данном товаре пока неизвестна. 2. Добавьте в отношение-экземпляр Клиент информацию о новом клиенте: Код. Клиента: 8, Фамилия: «Карпов» , Имя: «Иван» , Отчество: «Иванович» , Фирма: «ЧФ Домовой» , Город. Клиента: «Сумы» . Телефон клиента пока неизвестен. 3. Добавьте для клиента с кодом 8 номер телефона 050 -607 -67 -76. 4. Добавьте информацию о цене товара с кодом 11, цена равна 300. 5. Увеличьте цену товара с кодом 11 на 50%. 6. Добавьте в отношение-экземпляр Сделка информацию о новой сделке: Код. Товара: 11, Код. Клиента: 8, Кол_во: 6, Дата: 17. 11. 2013 (#11/17/2013#). 7. Удалите всю информацию из отношения-экземпляра Отчет. Товар2009_2010 (она д. б. заполнена после выполнения задания № 14 б из презентации-лекции). 8. Создайте новое отношение Сделки. Архив 2009, которое по типу совпадает с отношением Сделка. Заполните это отношение следками, которые совершались в 2009 на основе информации отношения-экземпляра Сделка. 9. Удалите из отношения-экземпляра Сделки. Архив 2009 все сделки, которые совершались с клиентом с кодом 1. 10. Создайте новое отношение Клиент_Кол_во. Сделок(Код. Клиента, Кол_во. Сделок), где первичный ключ – не счетчик. Заполните в отношении Клиент_Кол_во. Сделок поля на основе информации в БД. 11. * Измените в отношении-экземпляре Товар цену товара с кодом 11, новая цена должна быть меньше цены товара с 25 кодом 3 на 10% (Для Access функция DFirst). ХНУРЕ кафедра Інформатики доц. Яковлева О. В.
ЛК_13_Presentation_SQL_DML_Stud2013_12_2.pptx