Добавил:
больше работ здесь: https://github.com/alisadex Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
11.02.2024
Размер:
43.92 Кб
Скачать

Задания. Естественное соединение

Задание. Вывести данные о том, на каких факультетах и кафедрах, по каким специальностям обучаются студенты. Запрос выполнить как естественное соединение таблиц «Кафедра», «Специальность» и «Студент».

SELECT *

FROM Кафедра

NATURAL JOIN Специальность

NATURAL JOIN Студент;

Задание. Вывести данные о том, на каких факультетах и кафедрах, по каким специальностям обучаются студенты. Запрос выполнить как естественное соединение таблиц «Кафедра», «Специальность» и «Студент» на основе команды INNER JOIN.

SELECT *

FROM Кафедра

INNER JOIN Специальность ON Кафедра.шифр = Специальность.шифр

INNER JOIN Студент ON Специальность.номер = Студент.номер;

Задание. Вывести все данные о преподавателях: «Сотрудник. таб_номер», «шифр», «фамилия», «должность», «зарплата», «звание», «степень» — как запрос на естественное соединение таблиц «Сотрудник» и «Преподаватель», связанных категориальной связью.

SELECT Сотрудник.таб_номер, Сотрудник.шифр, Сотрудник.фамилия, Сотрудник.должность, Сотрудник.зарплата, Преподаватель.звание, Преподаватель.степень

FROM Сотрудник

NATURAL JOIN Преподаватель;

Задание. Вывести данные о том, какие дисциплины преподают разным специальностям. Вывести «Специальность.номер», «Специальность.шифр», «Дисциплина.код», «Дисциплина.название». Запрос оформить как естественное соединение таблиц «Специальность» и «Дисциплина», связанных ассоциативной таблицей «Заявка».

SELECT Специальность.номер, Специальность.шифр, Дисциплина.код, Дисциплина.название

FROM Специальность

NATURAL JOIN Заявка

NATURAL JOIN Дисциплина;

Задание. Вывести данные («факультет», «Кафедра.шифр», «Ка- федра.название», «код», «Дисциплина.название», «объем») о кафедрах и читаемых ими курсах. Запрос оформить на основе естественного соединения таблиц «Кафедра» и «Дисциплина» по полям «Кафедра, шифр» и «Дисциплина.исполнитель». Здесь «исполнитель» — имя роли, которую играет атрибут «шифр» в таблице «Дисциплина».

SELECT Факультет, Кафедра.шифр, Кафедра.название, Дисциплина.код, Дисциплина.название AS Название_Дисциплины, Дисциплина.объем

FROM Кафедра

NATURAL JOIN Дисциплина;

Задание. Вывести из таблиц «Кафедра» и «Сотрудник» шифр («шифр»), название («название») кафедр, а также среднюю зарплату и количество сотрудников с соответствующими заголовками только для тех кафедр, у которых средняя зарплата не меньше заданного значения.

SELECT Кафедра.шифр, Кафедра.название, AVG(Сотрудник.зарплата) AS Средняя_Зарплата, COUNT(Сотрудник.таб_номер) AS Количество_Сотрудников

FROM Кафедра

JOIN Сотрудник ON Кафедра.шифр = Сотрудник.шифр

GROUP BY Кафедра.шифр, Кафедра.название

HAVING AVG(Сотрудник.зарплата) >= [Ваше заданное значение];

Задание. Декартово произведение

Задание. Вывести декартово произведение трех таблиц «Кафедра», «Специальность» и «Студент».

SELECT *

FROM Кафедра

CROSS JOIN Специальность

CROSS JOIN Студент;

Задания. Запросы с подзапросами

Задание. Вывести данные из таблицы «Студент» о студентах, которые обучаются по той же специальности, что и студент с заданным номером (столбец «рег_номер»).

SELECT S.*

FROM Студент S

JOIN Специальность Sp1 ON S.номер = Sp1.номер

JOIN Специальность Sp2 ON Sp1.шифр = Sp2.шифр

WHERE S.рег_номер <> 'заданный_номер' -- Замените 'заданный_номер' на конкретный номер студента

AND Sp2.номер = (SELECT номер FROM Студент WHERE рег_номер = 'заданный_номер');

Соседние файлы в папке Материалы для экзамена