Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные для управления данными / для типографии методическое пособие по БД.doc
Скачиваний:
97
Добавлен:
20.02.2016
Размер:
670.72 Кб
Скачать
    1. 5.5 Запросы на обновление данных

Оператор UPDATE предназначен для изменения значения в группе записей. При корректировке каждому из перечисленных полей присваивается соответствующее значение. Корректировка выполняется для всех записей, удовлетворяющих условию поиска. Если опустить WHERE <условия поиска>, то в объекте будут изменены все записи.

Формат оператора UPDATE:

UPDATE <объект>

SET < обновляемое поле1=значение1 > [,< обновляемое поле2 = значение2 >…]

[Where<условия поиска>]

Пример. Увеличить цены на товары типа конструктор.

UPDATE Товары SET Товары.Цена = [Товары]![Цена]*0.5

WHERE Товары.[Тип товара]="конструктор";

    1. 5.6 Запросы на добавление данных

Оператор INSERT предназначен для добавления записей в таблицу.

Формат оператора INSERT:

INSERT <объект>

VALUES (<значение поле1> [,< значение поле2 >…])

Пример. Добавить информацию о новом товаре в таблицу Товары.

INSERT Товары

VALUES (098, «Конструктор», «Терминатор», 2300);

  1. 6 Реляционная алгебра и язык SQL

    1. 6.1 Унарные операции

1. Выборка

Операция выборки применяется к одному отношению R и определяет результирующее отношение, которое содержит только те кортежи (строки) из отношения R, которые удовлетворяют заданному условию.

Пример: Показать всех сотрудников, оклад которых более 10000 рублей.

SELECT *

FROM Сотрудники

WHERE Сотрудники.Оклад>10000;

2. Проекция

Операция проекции определяет новое отношение, содержащее вертикальное подмножество отношения R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк-дубликатов.

Пример: Показать ведомость всех сотрудников с указанием только фамилии, имя, отчества, оклада.

SELECT Фамилия, Имя, Отчество, Оклад

FROM Сотрудники;

    1. 6.2 Теоретико-множественные отношения

1. Объединение

Объединение двух отношений R1 и R2 определяет новое отношение, содержащее множество кортежей, принадлежащих либо первому R1, либо второму R2 исходным отношениям, либо обоим отношениям одновременно. При этом отношения R1 и R2 должны быть совместимы по объединению.

Таблица 4 - Отношение R1, исходное для операции объединения

R1 – Поставщик

Код города

Город

001

Тольятти

002

Москва

004

Пенза

005

Тверь

Таблица 5 - Отношение R2, исходное для операции объединения

R2 – Потребитель

Код города

Город

001

Тольятти

003

Саратов

004

Пенза

006

Сызрань

Пример: Показать города поставщиков и потребителей продукции. Исходные данные отображены в таблицах 4 и таблице 5, результат объединения указан в таблице 6.

SELECT Город

FROM Поставщик

UNION

SELECT Город

FROM Потребитель

,

где , - отношения;

r1 и r2 соответственно кортежи отношений R1 и R2;

- знак объединения;

- операция логического сложения «ИЛИ».

Таблица 6 - Отношение R3, результат объединения

R3 – объединение (города поставщиков и потребителей.)

Код города

Город

001

Тольятти

002

Москва

003

Саратов

004

Пенза

005

Тверь

006

Сызрань

2 Пересечение

Пересечение двух отношений R1 и R2 называется новым отношением, которое содержит множество кортежей, принадлежащих и первому R1 и второму отношению R2.

Пример. Показать города, которые являются одновременно и городами поставщиков и городами потребителей продукции. Исходные данные отображены в таблицах 4 и 5, результат пересечения указан в таблице 7.

SELECT Город

FROM Поставщик

INTERSECT

SELECT Город

FROM Потребитель;

,

где , - отношения;

r1 и r2 соответственно кортежи отношений R1 и R2;

- знак пересечения;

- операция логического сложения «И».

Таблица 7 - Отношение R4 результат пересечения

R4 – пересечение (города одновременно поставщиков и потребителей)

Код города

Город

001

Тольятти

004

Пенза

3. Разность

Разностью отношений называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2 (и наоборот).

Пример: Показать города, которые являются городами поставщиков, но не являются городами потребителей продукции. Исходные данные отображены в таблицах 4 и 5, результат разности указан в таблице 8.

SELECT Город

FROM Поставщик

EXCEPT

SELECT Город

FROM Потребитель;

,

Таблица 8 - Отношение R5 результат разности

R5 – разность (города поставщиков без городов потребителей)

Код города

Название

002

Москва

005

Тверь

4. Декартово произведение

Введем предварительно понятие конкатенации.

Конкатенацией, или сцеплением кортежей с = <d, с2…сп> и q = <q1, q2, …qm>, называется кортеж, полученный добавлением значений второго в конец первого:

<с, q> = < d, c2,…cn, qiT q2,…qm>-

Операция декартово произведение определяет новое отношение, которое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R7 с каждым кортежем из отношения R8.

Пример: Показать всех сотрудников, участвующих в проектах, с названиями этих проектов, с условием, что каждый сотрудник участвует в каждом проекте. Исходные данные отображены в таблицах 9 и 10, результат объединения указан в таблице 11.

SELECT *

FROM Сотрудники CROSS JOIN Проекта;

или

SELECT *

FROM Сотрудники, Проекта;

Таблица 9 - Отношение R7, исходное для операции декартово произведение (таблица Сотрудники)

R7 – информация о сотрудниках

Код сотрудника

Фамилия

Имя

Отчество

001

Иванов

Юрий

Игоревич

002

Орлов

Егор

Петрович

003

Юрков

Павел

Антонович

004

Степанов

Олег

Сергеевич

005

Петров

Сергей

Олегович

006

Локтев

Павел

Сергеевич

Таблица 10 - Отношение R8, исходное для операции декартово произведение (таблица Проекты)

R8 – перечень проектов

Проект

Автоматизация цеха 1

Инновационные исследования

Таблица 11 - Отношение R9, результат декартова произведения

R9 – информация о сотрудниках

Код сотрудника

Фамилия

Имя

Отчество

Проект

001

Иванов

Юрий

Игоревич

Автоматизация цеха 1

002

Орлов

Егор

Петрович

Автоматизация цеха 1

003

Юрков

Павел

Антонович

Автоматизация цеха 1

004

Степанов

Олег

Сергеевич

Автоматизация цеха 1

005

Петров

Сергей

Олегович

Автоматизация цеха 1

006

Локтев

Павел

Сергеевич

Автоматизация цеха 1

001

Иванов

Юрий

Игоревич

Инновационные исследования

002

Орлов

Егор

Петрович

Инновационные исследования

003

Юрков

Павел

Антонович

Инновационные исследования

004

Степанов

Олег

Сергеевич

Инновационные исследования

005

Петров

Сергей

Олегович

Инновационные исследования

006

Локтев

Павел

Сергеевич

Инновационные исследования

Если добавляется условие WHERE, то эта операция называется ограничением декартова произведения.

Комбинация декартова произведения и выборки может быть сведена к одной операции соединение.

5. Декомпозиция сложных операций

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

Операция переименования позволяет присвоить новое имя S выражению Е, а так же дополнительно переименовывать атрибуты.

Пример: Рассчитать премии сотрудникам 80% от оклада.

SELECT Сотрудники. Фамилия, Сотрудники. Имя, Сотрудники. Отчество, Сотрудники. Оклад*0,8 AS Премия

FROM Сотрудники;