Язык запросов SQL. Многотабличные запросы

Содержание

Слайд 2

Как правило, информация в базе данных хранится в нескольких взаимосвязанных таблицах.

Как правило, информация в базе данных хранится в нескольких взаимосвязанных таблицах.


Для выборки данных из взаимосвязанных таблиц используется операция соединения нескольких таблиц.
Слайд 3

Способы соединения Соединение равенства Внешние соединения

Способы соединения

Соединение равенства
Внешние соединения

Слайд 4

Соединение равенства обычно производится по первичному ключу связи SELECT Клиенты.Фамилия, Клиенты.Имя,

Соединение равенства

обычно производится по первичному ключу связи
SELECT Клиенты.Фамилия, Клиенты.Имя,
Клиенты.Отчество, Продажи.Продано
FROM Клиенты,

Продажи
WHERE Клиенты.[Код клиента]=Продажи.[Код клиента]
Слайд 5

Использование псевдонимов полей SELECT A.Фамилия, A.Имя, A.Отчество, B.Продано FROM Клиенты A, B WHERE A.[Код клиента]=B.[Код клиента]

Использование псевдонимов полей

SELECT A.Фамилия, A.Имя,
A.Отчество, B.Продано
FROM Клиенты A, B
WHERE A.[Код клиента]=B.[Код

клиента]
Слайд 6

Соединение равенства SELECT Клиенты.Фамилия. Клиенты.Имя, Клиенты.Отчество, Продажи.Продано FROM Клиенты INNER JOIN Продажи ON Клиенты.[Код клиента]=Продажи.[Код клиента]

Соединение равенства

SELECT Клиенты.Фамилия. Клиенты.Имя,
Клиенты.Отчество, Продажи.Продано
FROM Клиенты INNER JOIN Продажи
ON Клиенты.[Код клиента]=Продажи.[Код

клиента]
Слайд 7

Пример

Пример

Слайд 8

Внешние соединения Существует два типа внешнего объединения OUTER JOIN - LEFT

Внешние соединения

Существует два типа внешнего объединения OUTER JOIN - LEFT

OUTER JOIN и RIGHT OUTER JOIN. 
SELECT tabiel.fieldl, table2.field2, {.....tableN.fieldN}
FROM tablel LEFT | RIGHT | FULL {OUTER} JOIN table2
Ключевое слово OUTER можно опустить. Запись LEFT JOIN идентична LEFT OUTER JOIN.
Слайд 9

Внешние соединения □ LEFT OUTER JOIN — левое внешнее соединение (в

Внешние соединения

□ LEFT OUTER JOIN — левое внешнее соединение (в

выборку включаются все запи­си таблицы, имя которой указано слева от оператора OUTER JOIN);
□ RIGHT OUTER JOIN — правое внешнее соединение (в выборку включаются все за­писи таблицы, имя которой указано справа от оператора OUTER JOIN);.
Слайд 10

Слайд 11

Дополнительно можно отфильтровать данные, проверяя их на NULL

Дополнительно можно отфильтровать данные, проверяя их на NULL

Слайд 12

Объединение запросов Язык SQL позволяет объединять несколько запросов с помощью специальных

Объединение запросов

Язык SQL позволяет объединять несколько запросов с помощью специальных операторов.


Запросы, включающие в себя несколько операторов SELECT, принято называть составными.
Составные запросы формируют один набор данных на основе результатов, по­лученных при выполнении каждого запроса, входящего в объединение.
Для объединения запросов наиболее часто используются операторы UNION и UNION ALL (предусмотренные стандартом ANSI).
Слайд 13

Оператор UNION SELECT * FROM Товары WHERE Цена>100 UNION SELECT * FROM Товары WHERE Цена

Оператор UNION

SELECT * FROM Товары WHERE Цена>100
UNION
SELECT * FROM

Товары WHERE Цена<1000
Слайд 14

Правила объединения □ каждый из запросов, входящих в объединение, должен возвращать

Правила объединения

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

количество полей (в том числе вычисляемых);
□ типы полей, возвращаемых в результате выполнения каждого запроса, должны совпадать.
Слайд 15

Оператор UNION ALL Оператор UNION ALL аналогичен оператору UNION, за исключением

Оператор UNION ALL

Оператор UNION ALL аналогичен оператору UNION, за исключением того,

что в результирующую выборку включаются дублирующие записи.
SELECT * FROM Товары WHERE Цена>100
UNION ALL
SELECT * FROM Товары WHERE Цена<1000
Слайд 16

Full outer join Некоторые СУБД не поддерживают такую функциональность (например, MySQL),

Full outer join

Некоторые СУБД не поддерживают такую функциональность (например, MySQL), в

таких случаях обычно используют объединение двух запросов