Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MetEccess.pdf
Скачиваний:
9
Добавлен:
31.05.2015
Размер:
771.21 Кб
Скачать

SELECT Копия1.Фамилия AS Преподаватель, Копия2.Фамилия AS [Заведующий кафедрой] FROM Преподаватель AS Копия1 INNER JOIN Преподаватель AS Копия2 ON Копия1.Заведующий кафедрой = Копия2.Табельный номер;

В примере в предложении FROM использованы псевдонимы таблиц Копия1 и Копия2, а в предложении SELECT заданы новые имена столбцам. Возможно соединение различных таблиц и копий одной таблицы.

5.5. ЗАПРОСЫ НА ОБЪЕДИНЕНИЕ

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

TABLE <таблица_1> | <запрос_1> UNION [ALL] TABLE <таблица_2> | <запрос_2> [UNION [ALL] TABLE <таблица_п> | <запрос_п>] [ORDER BY {<имя_столбца> | <номер столбца> [ASCIDESC]}];

По умолчанию повторяющиеся записи не возвращаются, предикат ALL гарантирует возврат всех записей. Все запросы, включенные в операцию UNION, должны отбирать одинаковое число полей, при этом типы данных и размеры полей не обязательно должны совпадать. В качестве имен полей используются имена столбцов первой таблицы/запроса. По умолчанию строки результата сортируются по возрастанию первого столбца результата. В качестве последнего предложения операции UNION может быть использовано предложение ORDER BY, позволяющее сортировать результат по нескольким столбцам. В этом предложении используются номера столбцов или имена из первой таблицы/запроса. Псевдонимы можно использовать только в первой таблице/запросе, в остальных они про-

42

пускаются. В каждом из объединяемых запросов допускается использование предложения GROUP BY или HAVING для группировки возвращаемых данных.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Как в результате запроса изменить заголовок столб-

ца?

2.Чем отличаются предикаты DISTINCT и DISTINCTROW?

3.Если таблица СТУДЕНТ содержит столбцы Фамилия и Средний балл, то как вывести сведения о десяти студентов с наибольшим баллом?

4.Как в таблице СТУДЕНТ найти сведения о всех студентов, фамилии которых начинаются на букву 'Л'?

5.Как создать параметрический запрос, позволяющий узнать оценку определенного студента по определенной дисциплине? Создайте такой запрос.

6.Как построить перекрестный запрос, выводящий оценки всех студентов по дисциплине "Высшая математика" за первый (код равен 1) и второй (код равен 2) семестры? Создайте такой запрос.

7.Чем отличаются внутренние и внешние соедине-

ния?

8.Что такое самосоединение таблиц?

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

10.В чем преимущество использования подчиненных запросов по сравнению с соединением таблиц?

43

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]