Опубликован: 02.02.2007 | Доступ: свободный | Студентов: 2374 / 243 | Оценка: 4.10 / 3.86 | Длительность: 26:44:00
Урок 14:

Связывание таблиц

Объединения

Последним типом связывания является объединения. Объединения помещают результаты выполнения двух различных операторов SELECT в один набор строк. При внутреннем и внешнем связывании столбцы из двух таблиц размещаются построчно. Объединение размещает строки из двух таблиц в одном столбце, как если бы вы взяли два набора строк и получили единое их множество, в котором один набор располагается под другим. Фактический порядок строк в полученном результате определяется фразой ORDER BY.

Синтаксис объединения отличается от синтаксиса связывания. Он имеет следующий вид:

SELECT <список_столбцов> FROM <имя_таблицы>
UNION [ALL]
SELECT <список_столбцов> FROM <имя_таблицы>
[ORDER BY <список_столбцов>]

Вы можете добавить в запрос столько операторов UNION SELECT, сколько захотите (с учетом ограничения в 256 таблиц), но все операторы SELECT должны возвращать одно и то же количество столбцов одинаковых или совместимых типов и в одном и том же порядке. Первый оператор SELECT будет определять имена столбцов, а фраза ORDER BY последнего оператора SELECT будет определять порядок сортировки.

По умолчанию SQL Server не допускает дублирования строк в результате выполнения запроса с объединением. Если вы, однако, укажете UNION ALL, дублирующиеся строки будут сохранены.

Создайте объединение

  1. Откройте конструктор запросов Query Designer, щелкнув правой кнопкой мыши на таблице Properties в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки).
  2. Отобразите панель SQL Pane.
  3. Замените имеющийся оператор SQL следующим:
    SELECT	'PropertyTable' AS TableName, PropertyID AS ID,
    	Property AS Quality FROM Properties
    UNION
    SELECT	'OdorTable', OdorID, Odor FROM Odors
    ORDER BY	Quality
  4. Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer объединит результаты выполнения двух операторов SELECT.

Краткое содержание

Чтобы ... Используйте синтаксис оператора SELECT
Создать внутреннее связывание SELECT ... FROM <таблица> INNER JOIN <таблица> ON <условие связывания>
Связать несколько таблиц SELECT ... FROM <таблица> <оператор связывания> <таблица>ON <условие связывания> <оператор связывания> <таблица> ON <условие связывания>
Создать правое внешнее связывание SELECT ... FROM <таблица> RIGHT OUTER JOIN <таблица> ON <условие связывания>
Создать левое внешнее связывание SELECT ... FROM <таблица> LEFT OUTER JOIN <таблица> ON <условие связывания>
Создать полное внешнее связывание SELECT ... FROM <таблица> FULL OUTER JOIN <таблица> ON <условие связывания>
Создать объединение SELECT ... UNION [ALL] SELECT ... [ORDER BY <список_столбцов>]
Инна Грушецкая
Инна Грушецкая
Сергей Чесноков
Сергей Чесноков