Главная » Microsoft SQL Server, Базы данных » Использование объединений

0

В реляционной алгебре объединением называют произведение двух наборов данных с применением к результату следующего ограничения: он содержит только пересечение двух множеств. В целом объединение сливает два набора данных по горизонтали (этими наборами данных могут быть подзапросы, представления, общие табличные выражения и пользовательские функции) и получает новый результат, комбинируя строки одного набора данных с соответствующими строками другого (рис. 9.1). В этом разделе будут описаны разные типы объединений и их использование для отбора данных.

Рис. 9.1. Объединение сливает строки одного набора данных со строками другого, создавая новое множество строк, включающее столбцы обоих наборов данных. На этой диаграмме код 101 является общим для клиента Smith и заказа с номером 1 — он используется для объединения двух исходных строк в одну результирующую строку

Связывая информацию с помощью объединения, инструкция SELECT способна получить доступ к данным обеих таблиц и применить к ним выражения для столбцов, функции агрегирования, группировку и условия WHERE. Эти возможности являются сердцем и душой языка SQL и определяют его основную силу.

Я прошу прощения, если это напомнит вам домашнюю работу вашего ребенка по математике, но объединения основаны на идее пересечения множеств данных. Как показано на рис. 9.2, реляционное объединение имеет дело с двумя наборами данных с общим значением, и именно эти значения определяют, как пересекаются таблицы.

Рис. 9.2. Реляционные объединения основаны на наложении, или пересечении, двух множеств данных

v           Этот набор диаграмм является одним из типов диаграмм Венна. Более подроб

на заметку ную информацию о диаграммах Венна вы можете получить на странице:

www.combinatorics.org/Surveys/ds5/VennEJC.html

Пересечение демонстрирует тот факт, что некоторый общий атрибут может связать некоторую строку одного набора данных со строкой другого набора. Эти общие значения обычно являются парой первичного и внешнего ключей, как в следующем примере из базы данных OBXKites.

?               Поле Contact ID связывает таблицы Contact и [Order].

?               Поле Order ID связывает таблицы [Order] и OrderDetail.

?               Поле Product ID связывает таблицы Product и OrderDetail.

Язык SQL содержит множество типов объединений, определяющих, как именно отбираются строки из разных концов объединения. В табл. 9.1 перечислены эти типы объединений, а подробно они будут рассмотрены в следующих разделах.

Таблица 9.1. Типы объединений

Тип

Определение

Внутреннее объединение

Включает только соответствующие строки

Левое внешнее

Включает все строки из левой таблицы, независимо от того, существуют ли в

объединение

правой таблице соответствующие им, а также связанные строки правой таблицы

Правое внешнее объеди

Включает все строки из правой таблицы, независимо от того, существуют ли

нение

в левой таблице соответствующие им, а также соответствующие строки левой

таблицы

Полное внешнее объеди

Включает все строки из обеих таблиц, независимо от того, существуют ли

нение

соответствия между ними

Тета-объединение

Соответствия между строками ищутся с использованием неравенств (<, >,

< = , >= И о)

Перекрестное

Декартово произведение — соответствие между каждой строкой первого и

объединение

второго источника данных, без каких бы то ни было условий и ограничений

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии