Запросы на сочетание данных
Используется операция скалярного произведения реляционных таблиц и по смыслу направлены на формирование полного сочетаний строк- записей, представленных в исходных таблицах
Проще. Для одной строки одной таблицы записываются все строки другой
Пример записи запроса
SELECTТаблица1.*,Таблица2.* FROM Таблица1,Таблица
Привести пример
Запросы на соединение данных;
- Внутреннее соединение
INNER JOIN … ON…., т.е должно быть выделено поле(столбец) соединения
<связка_таблиц>= <левая таблица> INNER JOIN<правая таблица> ON<условие>
Пример №3
Таблица1 | |
ФИО | Зарплата |
Новиков А.П. | 7 500,00р. |
Сергеев И.В. | 8 000,00р. |
SELECT Таблица1.ФИО, Таблица2.Должность, Таблица1.Зарплата
FROM Таблица1 INNER JOIN Таблица2 ON Таблица1.ФИО=Таблица2.ФИО;
Таблица2 | |
ФИО | Должность |
Новиков А.П. | продавец |
Сергеев И.В. | менеджер |
Запрос1 | ||
ФИО | Должность | Зарплата |
Новиков А.П. | продавец | 7 500,00р. |
Сергеев И.В. | менеджер | 8 000,00р. |
- Правого и левого внешнего соединения
<связка_таблиц>= <левая таблица> LEFT JOIN <правая таблица> ON<условие>
Пример №4
Таблица1 | |
ФИО | Зарплата |
Новиков А.П. | 7 500,00р. |
Петров В.А. | 8 000,00р. |
Сергеев И.В. | 17 300,00р. |
Таблица2 | |
ФИО | Должность |
Новиков А.П. | продавец |
Сергеев И.В. | менеджер |
SELECT Таблица1.ФИО, Таблица2.Должность, Таблица1.Зарплата
FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.ФИО=Таблица2.ФИО;
Запрос1 | ||
ФИО | Должность | Зарплата |
Новиков А.П. | продавец | 7 500,00р. |
Петров В.А. | 8 000,00р. | |
Сергеев И.В. | менеджер | 17 300,00р. |
Запросы на объединение данных
Создаются наборы данных , объединенными однотипными по смыслу записями из нескольких таблиц.
Инструкция SELECT - UNION SELECT
В SELECT перечисляются отбираемые поля и условия записей из первой таблицы
В UNION SELECT перечисляются отбираемые поля и условия отбора записей из других таблицы
Отбираемое количество полей в SELECT и UNION SELECT должно быть одинаковым
Ключевое слово AS изменяет в итоговом наборе данных наименование отбираемых полей.
Предикат ALL после UNION обеспечивает режим отбора всех, в том числе и повторяющихся записей
Задание
Заданы две таблицы. Исходящие и Входящие. По запросу заполните таблицы и выполните его.
Исходящие
Рег № вход | Дата | Заголовок | Отправитель |
223/ис | 10.11.2011 | О лемехе | НИИ «Кузнец» |
15.12.2011 | |||
20.12.2011 |
Входящие
Рег № исход | Дата | Заголовок | Адресат |
25.12.2011 | Помощь | ЗАО «Железо» | |
18.12.2011 |
Запрос
SELECT Рег № вход AS Рег № вход/ исход, Дата, Заголовок, Отправитель AS Отправитель/ Адресат
FROM Входящие
WHERE (Входящие. Дата >= #12/01/2011#)
UNION ALL SELECT Рег № исход, Дата, Заголовок, Адресат
FROM Исходящие
WHERE (Исходящие. Дата >= #20/12/2011#);
Смысл запроса
Документы полученные после 01.12.2011 и отправленные после 20.12.2011