Скачиваний:
3
Добавлен:
15.01.2021
Размер:
177.71 Кб
Скачать

1.1 +

Select 'Кафедра ' || name || ' с первичным ключом ' || DepPK ||

' имеет удвоенный фонд финансирования ' || Fund*2 AS "Информация о кафедрах"

From DEPARTMENT;

1.2 +

Select 'Кафедра' AS "Константа1",

name AS "Кафедра",

'с первичным ключом' AS "Константа2",

DepPK AS "ПК",

'имеет удвоенный фонд финансирования' AS "Константа3",

Fund*2 AS "Финансирование"

From DEPARTMENT;

2) + Вывести номера групп 3-го курса, которым проводят лабораторные работы преподаватели факультета компьютерных наук

SELECT

g.Num

FROM

FACULTY f, DEPARTMENT d, TEACHER t, LECTURE l, SGROUP g

WHERE f.DeanFK = d.DepPK AND t.DepFK = d.DepPK AND l.TchFK = t.TchPK AND l.GrpFK = g.GrpPK AND Course = 3 AND f.Name = 'Нафтогазової інженерії та комп`ютерних наук';

3) - Вывести названия факультетов, студентам которых преподают преподаватели кафедры ИПО

SELECT f.Name

FROM DEPARTMENT d1, TEACHER t, LECTURE l, SGROUP g, DEPARTMENT d2, FACULTY f

WHERE d1.DepPK = t.DepFK AND t.TchPK = l.TchFK AND l.GrpFK = g.GrpPK AND g.DepFK = d2.DepPK AND d2.FacFK = f.FacPK AND d1.Name = 'Компютерні науки'

ЗДЕСЬ НЕПРАВИЛЬНО СОЕДИНЕНЫ ТАБЛИЦЫ d1 и d2. Нужно переделать!!! На схеме показан порядок соединения:

d1.DepPK=t. DepFK AND (1)

t.TchPK= l.TchFK AND (2)

l.GrpFK= g.GrpPK AND (3)

g.DepFK= d2.DepPK AND (4)

d2.FacFK=f.FacPK (5)

Сравните со своим.

4) + Вывести названия кафедр, в группах которых проводят занятия типа 'лекция' преподаватели, принятые на работу в диапазоне 01.01.2001 01.01.2002 // Вывел своё, т.к таких дат у меня нет.

SELECT d.name

FROM TEACHER t, LECTURE l, SGROUP g, DEPARTMENT d

WHERE l.TchFK = t.TchPK AND l.GrpFK = g.GrpPK AND g.DepFK = d.DepPK AND l.type = 'лекция' AND t.hiredate BETWEEN to_date('01-JUL-01','DD-MM-YY') AND to_date('03-FEB-04','DD-MM-YY')

5) - Вывести названия кафедр факультета, деканом которого является Иванов, непосредственные подчиненные заведующих которых (кафедр) имеют одну из следующих ставок: 1000, 1500, 2000, 2500, 3000.

SELECT d.Name

FROM FACULTY f, DEPARTMENT d, TEACHER t1, TEACHER t2, TEACHER t3

WHERE f.FacPK = d.FacFK AND d.HeadFK = t2.TchPK AND t2.TchPK = t3.ChiefFK AND f.DeanFK = t1.TchPK AND (t3.Name)='Иванов' AND t3.Salary IN (1000, 1500, 2000, 2500, 3000)

6) +Вывести пары номеров групп вместе с их курсами, удовлетворяющих следующему условию: факультет первой группы имеет фонд финансирования больше, чем на 2000, фонда факультет второй группы.

SELECT DISTINCT g1.Num, g2.Num, g1.Course, g2.Course

FROM FACULTY f1, FACULTY f2, SGROUP g1, SGROUP g2, DEPARTMENT d1, DEPARTMENT d2

WHERE f1.Fund >= f2.Fund + 2000

Соседние файлы в папке Лабораторная работа 4. Предложение SELECT в SQL Oracle. Основные возможности (ПРОДОЛЖЕНИЕ)