Самостоятельная работа Создание запросов с использованием стандартных слов union, intersect и minus по дисциплине «Базы данных»


Написать запросы с использованием UNION самостоятельно, а затем посмотреть решение


Download 61.34 Kb.
bet3/9
Sana25.12.2022
Hajmi61.34 Kb.
#1065867
TuriСамостоятельная работа
1   2   3   4   5   6   7   8   9
Bog'liq
4-Labaratoriya ishi Mavzu Union, Intersect va Minus standart

Страница 2 (Объединение результатов сложных запросов)

Написать запросы с использованием UNION самостоятельно, а затем посмотреть решение


Пример 2. Данные - те же, что в примере 1, но задача немного посложнее. Требуется вывести в одной таблице не только индивидуальные размеры заработной платы, упорядоченные по должностям и суммарную заработную плату по должностям, но суммарную заработную плату по всем сотрудникам.
Правильное решение.
Пример 3. В базе данных фирмы есть таблица Staff, содержащая данные о сотрудниках фирмы. В ней есть столбцы Name (фамилия), Dept (номер отдела), и Years (длительность трудового стажа).

Name

Dept

Years

Sanders

20

7

Pernal

20

8

Marenghi

38

5

Doctor

20

5

Factor

38

8

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

  • Страница 2 (Объединение результатов сложных запросов)

Другие случаи объединения запросов к одной таблице с помощью оператора SQL UNION


Пример 4. В базе данных фирмы есть таблица Staff, содержащая данные о сотрудниках фирмы. В ней есть столбцы Salary (размер заработной платы), Job (должность) и Years (длительность трудового стажа). Первый запрос нужен для получения данных о сотрудниках, заработная плата которых более 21000:

SELECT ID, Name


FROM STAFF WHERE SALARY > 21000
Результатом выполнения запроса будет следующая таблица:

ID

Name

140

Fraye

160

Molinare

260

Jones

Второй запрос возвращает имена сотрудников, должность которых "менеждер", а число лет трудового стажа - менее 8:

SELECT ID, Name


FROM STAFF WHERE Job = 'Mgr' AND Years < 8 ORDER BY ID
Результатом выполнения запроса будет следующая таблица:

ID

Name

10

Sanders

30

Marenghi

100

Plotz

140

Fraye

160

Molinare

240

Daniels

Теперь требуются данные, в которых объединены критерии отбора, применённые в двух запросах. Объединяем запросы при помощи оператора UNION:

SELECT ID, Name


FROM STAFF WHERE SALARY > 21000
UNION
SELECT ID, Name
FROM STAFF WHERE Job = 'Mgr' AND Years < 8 ORDER BY ID
Результатом выполнения запроса с оператором UNION будет следующая таблица:

ID

Name

10

Sanders

30

Marenghi

100

Plotz

140

Fraye

160

Molinare

240

Daniels

260

Jones

Запрос с оператором UNION может возвращать и большее количество столбцов, важно, повторимся, чтобы в объединяемых запросах число столбцов, порядок их следования и типы данных совпадали.
Теперь работаем с базой данных "Портал объявлений - 1". Скрипт для создания этой базы данных, её таблицы и заполения таблицы данных - в файле по этой ссылке

Download 61.34 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling