Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2575.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
1.86 Mб
Скачать

кафедрой (у заведующих указан NULL). Таблица содержит данные всех преподавателей, включая заведующих кафедрами. Запрос выводит фамилии преподавателей и фамилии заведующих соответствующими кафедрами:

SELECT Копия1.Фамилия AS Преподаватель,

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

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

9.5. Запросы на объединение

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

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

TABLE <таблица_1> | <запрос_1> UNION [ALL] TABLE <таблица_2> | <запрос_2> [UNION [ALL] TABLE

<таблица_п> | <запрос_п>] [ORDER BY {<имя_столбца> | <номер столбца>

[ASCIDESC]}];

По умолчанию повторяющиеся записи не возвращаются, предикат ALL гарантирует возврат всех записей. Все запросы,

56

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

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

Контрольные вопросы

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

столбца?

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

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

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

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

57

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