Язык структурных запросов sql введение
Скачать 58.6 Kb.
|
Select номер_детали from P where вес>16 union Select номер_детали from SP where номер_поставщика='S2'
Подготовьте запрос и проверьте полученный результат. VIII. Операторы манипулирования данными. Удаление данных Общая форма оператора удаления: delete from таблица [where предикат] 1. Удаление единственной записи. Пример Удалить сведения о поставщике S1. delete from S where номер_поставщика='S1' Результат: таблица S с отсутствующей строкой о поставщике S1. Подготовьте запрос и проверьте полученный результат. 2. Удаление множества записей. Пример Удалить сведения обо всех поставщиках из Лондона. delete from S where город='Лондон' Результат: таблица S с отсутствующими строками о поставщиках из Лондона. Подготовьте запрос и проверьте полученный результат. 3. Удаление с подзапросом. Пример Удалить все поставки для поставщиков из Лондона. delete from SP where 'Лондон'= (Select город from S where S.номер_поставщика=SP.номер_поставщика) Результат: таблица SP с отсутствующими строками о поставках для поставщиков из Лондона. Подготовьте запрос и проверьте полученный результат. 4. Удаление всех строк таблицы. Пример delete from S Подготовьте запрос и проверьте полученный результат. IX. Операторы манипулирования данными. Вставка данных Общая форма оператора вставки. Insert into таблица [(поле [,поле]...)] values ( константа [,константа]...) или подзапрос 1. Вставка единственной записи. Пример Вставить новую поставку с номером поставщика S2, номером детали P4 и количеством 1000 на дату "30 ноября 1995 г.". Insert into SP values ('S2', 'P4', '11/30/95', 1000) Результат: таблица SP с добавленной строкой о поставке поставщиком S2 детали P4. Подготовьте запрос и проверьте полученный результат. 2. Вставка множества записей. Пример Восстановить таблицу S. Insert into S values ('S1', 'Смит', 20, 'Лондон'); Insert into S values ('S2', 'Джонс', 10, 'Париж'); Insert into S values ('S3', 'Блейк', 30, 'Париж'); Insert into S values ('S4', 'Кларк', 20, 'Лондон'); Insert into S values ('S5', 'Адамс', 30, 'Атенс') Результат: восстановленная таблица S. Подготовьте запрос и проверьте полученный результат. 3. Перечисление имен столбцов. Допускается не задавать значения для каждого столбца, а перечислить имена столбцов после имени таблицы, а потом предоставить значения только для тех столбцов, имена которых указаны. Пример Вставить строку о новом поставщике, занеся лишь номер поставщика, фамилию и город. Insert into S(номер_поставщика, фамилия, город) values ('S6', 'Боб', 'Нью-Йорк') Результат: добавленная строка в таблице S. Подготовьте запрос и проверьте полученный результат. 4. Вставка множества записей как результата подзапроса. Пример Для каждой поставляемой детали получить ее номер и общий объем поставки, сохранить результат в базе данных. Create table temp (номер_детали char(6), объем поставки smallint); Insert into temp (номер_детали,обьем_поставки) Select номер_детали, sum(количество) from SP group by номер_детали Результат: Сформированная таблица temp, данные в которую занесены как результат указанного оператора. Подготовьте запрос и проверьте полученный результат. 5. Построение внешнего соединения с использованием оператора Insert. Пример Для каждого поставщика получить его номер, фамилию, рейтинг и город вместе с номерами всех поставляемых им деталей. Если поставщик не поставляет никаких деталей, поставить в поле номер_детали значение NN. Create table outside_t (номер_поставщика char(5), фамилия char(20), рейтинг smallint, город char(15), номер_детали char(6)); Insert into outside_t Select S.*, SP.номер_детали from S, SP where S.номер_поставщика=SP.номер_поставщика; Insert into outside_t Select S.*, 'NN' from S where not exists (Select * from SP where SP.номер_поставщика = S.номер_поставщика) Результат: Сформированная таблица outside_t с данными, представляющими собой результат внешнего соединения двух таблиц. Подготовьте запрос и проверьте полученный результат. X. Операторы манипулирования данными. Обновление данных Общая форма оператора обновления Update таблица set поле=выражение [,поле=выражение]...[where предикат] 1. Обновление единственной записи. Пример Изменить цвет детали P2 на желтый, увеличить ее вес на 5 и установить значение города "неопределен". Update P set цвет='желтый', вес=вес+5, город=NULL where номер_детали='P2' Результат: Таблица S c внесенными изменениями. Подготовьте запрос и проверьте полученный результат. 2. Обновление множества записей. Пример Удвоить рейтинг всех поставщиков в Лондоне. Update S set рейтинг=2*рейтинг where город='Лондон' Результат: Таблица S с увеличенным рейтингом для поставщиков из Лондона. Подготовьте запрос и проверьте полученный результат. 3. Обновление с подзапросом. Пример Установить объем поставок, равный нулю для поставщиков из Лондона. update SP set количество=0 where 'Лондон'= (Select город from S where S.номер_поставщика=SP.номер_поставщика) Результат: Таблица SP с внесенными изменениями. Подготовьте запрос и проверьте полученный результат. Список литературы 1.Грабер М. Введение в SQL. - М.: ЛОРИ, 1996. - 380 с. . 2. Хансен Г., Хансен Д. Базы данных и управление. - М.: Бином, 1999. 3. Дж.Уорсли, Дж. Дрейк. PostgreSQL для профессионалов. - С-Питербур: Питер, 2003. 4. Конноли Т., Бегг К., Страчан А. Базы данных. Проектирование, реализация и сопровождение. - М.- С./П.- К., 2000. |