Бази даних-20210115T104840Z-001 / ПРОВЕРКА Laba_4_var2 Войтов
.docxВариант 2
1 Для каждого из преподавателей из таблицы TEACHER выведите его имя, ставку+надбавку, процент ставки по отношению к ставке+надбавке (имя этого столбца «Результат1»), процент надбавки по отношению к ставке+надбавке (имя этого столбца «Результат2»)
2) Вывести названия факультетов и дисциплин, которые читаются на этих факультетах преподавателями-доцентами, являющимися кураторами студентов 1-го курса
3) Вывести руководителя руководителя Иванова
4) Вывести имена преподавателей факультета 'компьютерные науки' с зарплатой (salary+commission) в диапазоне 1000-1500
5) Вывести имена кафедр факультета 'компьютерные науки', на которых имеются группы с рейтингами 12, 17, 25, 29, 33, 43, 50
6) Вывести названия кафедр, номера и курс групп этих кафедр. Если на какой-то кафедре нет групп, то эта кафедра все равно выводится, а вместо номера группы и курса выводятся цифры 0. Причем, столбцы результирующей таблицы имеют следующие имена:
Столбец имени кафедры – Кафедра
Столбец номера группы – Группа
Столбец курса - Курс
7) Вывести имена и должности преподавателей, которые НЕ удовлетворяют следующему условию:
преподаватель работает на факультете, расположенном в корпусе 4, и имеет должность ассистента ИЛИ работает на факультете, расположенном в корпусе 6, и имеет должность доцента
Выражения во фразе SELECT
+
Для каждого из преподавателей из таблицы TEACHER выведите его имя, ставку+надбавку, процент ставки по отношению к ставке+надбавке (имя этого столбца «Результат1»), процент надбавки по отношению к ставке+надбавке (имя этого столбца «Результат2»)
SELECT Name, Salary+Commission, Salary/(Salary + Commission) AS "Результат1", Commission/(Salary + Commission) AS "Результат2"
FROM TEACHER
ПРАВИЛЬНЫЙ ОТВЕТ:
Соединение таблиц
-
Вывести названия факультетов и дисциплин, которые читаются на этих факультетах преподавателями-доцентами, являющимися кураторами студентов 1-го курса
SELECT t.Name
FROM TEACHER t, FACULTY f, DEPARTMENT d
WHERE f.FacPK = d.FacFK AND d.DepPK = t.DepFK AND d.Name = 'Компютерні науки' AND t.Salary+t.Commission BETWEEN 1000 AND 1500
ПРАВИЛЬНЫЙ ПУТЬ ЗАПРОСА 2:
ПРАВИЛЬНЫЙ ЗАПРОС 2:
Многократное соединение одной и той же таблицы
-
Вывести руководителя руководителя Иванова
ПУТЬ ЗАПРОСА 3:
ПРАВИЛЬНЫЙ ЗАПРОС 3:
Предикат BETWEEN
-
Вывести имена преподавателей факультета 'компьютерные науки' с зарплатой (salary+commission) в диапазоне 1000-1500
ПУТЬ ЗАПРОСА 4:
ПРАВИЛЬНЫЙ ЗАПРОС 4:
Предикаты IN и LIKE
+
Вывести имена кафедр факультета 'компьютерные науки', на которых имеются группы с рейтингами 12, 17, 25, 29, 33, 43, 50
SELECT d.Name
FROM FACULTY f, DEPARTMENT d, SGROUP s
WHERE f.FacPK = d.FacFK AND d.DepPK = s.DepFK AND f.Name = 'Нафтогазової інженерії та комп`ютерних наук' AND s.Rating IN (12, 17, 25, 29, 33, 43, 50)
ПУТЬ ЗАПРОСА 5:
Внешнее соединение, соединение не по предикату равенства
–
Вывести названия кафедр, номера и курс групп этих кафедр. Если на какой-то кафедре нет групп, то эта кафедра все равно выводится, а вместо номера группы и курса выводятся цифры 0. Причем, столбцы результирующей таблицы имеют следующие имена:
Столбец имени кафедры – Кафедра
Столбец номера группы – Группа
Столбец курса – Курс
ПУТЬ ЗАПРОСА 6:
ПРАВИЛЬНЫЙ ЗАПРОС 6:
7) +-
Вывести имена и должности преподавателей, которые НЕ удовлетворяют следующему условию:
преподаватель работает на факультете, расположенном в корпусе 4, и имеет должность ассистента ИЛИ работает на факультете, расположенном в корпусе 6, и имеет должность доцента
ПУТЬ ЗАПРОСА 7:
SELECT t.Name, t.Post
FROM FACULTY f, ROOM r, DEPARTMENT d, LECTURE l, TEACHER t
WHERE f.FacPK = d.FacFK AND d.DepPK = t.DepFK AND t.TchPK = l.TchFK AND r.RomPK = l.RomFK AND NOT t.Post = 'ассистент' AND r.Building = 4 OR r.Building = 6 AND t.Post = 'доцент'
ПРАВИЛЬНЫЙ ЗАПРОС 7: