Главная страница

sql запросы. Язык структурных запросов sql введение


Скачать 63.05 Kb.
НазваниеЯзык структурных запросов sql введение
Дата20.04.2018
Размер63.05 Kb.
Формат файлаdocx
Имя файлаsql запросы.docx
ТипМетодические указания
#41691
страница5 из 5
1   2   3   4   5

VII. ОБЬЕДИНЕНИЕ

Объединяемые оператором UNION таблицы должны быть совместны по объединению:

Любое число предложений select может быть соединено оператором union. Избыточные дубликаты исключаются из результата объединения.

Пример

Выдать номера деталей, которые имеют вес более 16 фунтов, либо поставляются поставщиком S2.

Select номер_детали

from P

whereвес>16

union

Select номер_детали

from SP

where номер_поставщика='S2'

Результат:

Номер_детали

 

P1

 

P2

 

P3

 

P6

Подготовьте запрос и проверьте полученный результат.

VIII. Операторы манипулирования данными. Удаление данных

Общая форма оператора удаления:

deletefrom таблица [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. Удаление всех строк таблицы.

Пример

deletefrom S

Подготовьте запрос и проверьте полученный результат.

IX. Операторы манипулирования данными. Вставка данных

Общая форма оператора вставки.

Insertinto таблица [(поле [,поле]...)]

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. Перечисление имен столбцов.

Допускается не задавать значения для каждого столбца, а перечислить имена столбцов после имени таблицы, а потом предоставить значения только для тех столбцов, имена которых указаны.

Пример

Вставить строку о новом поставщике, занеся лишь номер поставщика, фамилию и город.

Insertinto S(номер_поставщика, фамилия, город)

values ('S6', 'Боб', 'Нью-Йорк')

Результат: добавленная строка в таблице S.

Подготовьте запрос и проверьте полученный результат.

4. Вставка множества записей как результата подзапроса.

Пример

Для каждой поставляемой детали получить ее номер и общий объем поставки, сохранить результат в базе данных.

Create table temp

(номер_детали char(6),

объем поставки smallint);

Insertintotemp (номер_деталибьем_поставки)

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

whereS.номер_поставщика=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.

 
1   2   3   4   5


написать администратору сайта