Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
15.01.2021
Размер:
227 Кб
Скачать

Соединение по условию, отличающемуся от равенства

SELECT DEPARTMENT.Name, DEPARTMENT.Fund

FROM FACULTY, DEPARTMENT

WHERE FACULTY.Fund < DEPARTMENT.Fund;

выводятся кафедры, которые имеют фонд финансирования, превышающий фонд финансирования ее факультета:

Самосоединение таблицы (1)

SELECT searched.Num

FROM SGROUP given, SGROUP searched

WHERE given.Num = 504 AND given.Year = 5 AND searched.Rating > given.Rating;

Вывести номера групп, рейтинг которых превышает рейтинг группы 504 пятого курса.

NUM

----------

408

505

2 строк выбрано

Самосоединение таблицы (2)

SELECT needed.Name

FROM TEACHER needed, TEACHER given

WHERE needed.Salary+needed.Rise> given.Salary+given.Rise AND

UPPER(given.Name) = 'СИДОРОВ';

Вывести фамилии преподавателей с зарплатой, превышающей зарплату Сидорова.

NAME

-----------

Резник

Ахромеев 2 строк выбрано.

Самосоединение таблицы (3)

SELECT DISTINCT t1.Name AS ФИО_1, t2.Name AS ФИО_2, s.Name AS Предмет, l1.Day AS День

FROM LECTURE l1, LECTURE l2, TEACHER t1, TEACHER t2, SUBJECT s

WHERE l1.SbjFK = l2.SbjFK AND LOWER(l1.Day) = LOWER(l2.Day) AND l1.TchFK = t1.TchPK AND l2.TchFK = t2.TchPK AND l1.SbjFK = s.SbjPK AND t1.Name < t2.Name;

ФИО_1

ФИО_2

ПРЕДМЕТ

ДЕНЬ

------------ --------------------

--------------------------------------

 

--------------

Витковский

Хоменко

операционные системы

пнд

Воробьев

Радишевский

проектирование компьютеров втр

Кузнецов

Марченко

базы данных

срд

3 строк выбрано.

Выдать пары преподавателей, которые читают одинаковые дисциплины в один и тот же день (с указанием какой именно дисциплины и в какой именно день).

ДОМАШНЕЕ ЗАДАНИЕ

Далее приводится 15 вариантов заданий. Каждый вариант состоит из 7 запросов, которые относятся к следующим категориям (в порядке их следования):

1) Выражения во фразе SELECT

2) Соединение таблиц

3) Многократное соединение одной и той же таблицы

4) Использование предиката BETWEEN

5) Использование предикатов IN и LIKE

6) Внешнее соединение, соединение не по предикату равенства

7) Использование сложных логических условий

ВАРИАНТ 15(1) Выражения во фразе SELECT

По каждому преподавателю выведите его имя и процент отношения разности между ставкой и надбавкой и суммы ставки с надбавкой

SELECT Name, ((Salary-

Commission)*100)/(Salary+Commission)

AS "Процент"

FROM TEACHER;

ВАРИАНТ 15(2) Соединение таблиц

Вывести номера групп и их курсов кафедры ИПО, которые имеют кураторов-профессоров, читающих лекции в аудиториях корпуса 6

SELECT g.Num, g.Course

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

WHERE d.DepPK=g.DepFK AND g.Curator=t.TchPK AND t.TchPK=l.TchFK AND l.RomFK=r.RomPK AND

UPPER(d.Name)='ИПО' AND LOWER(t.Post)='профессор' AND r.Building=6;

ВАРИАНТ 15(3) Многократное соединение одной и

той же таблицы

Вывести номера групп, которым преподает преподаватель, являющийся куратором группы 304 3-го курса

SELECT result.Num

FROM SGROUP source, TEACHER t, LECTURE l, SGROUP result

WHERE source.Curator=t.TchPK AND t.TchPK=l.TchFK AND l.GrpFK=result.GrpPK AND source.Num=304 AND source.Course=3;

ВАРИАНТ 15(4) Использование предиката BETWEEN

Вывести имена преподавателей, которые проводят занятия в группах с количеством студентов в диапазоне 15-35 и в аудиториях с количеством мест в диапазоне 25-50

SELECT t.Name

FROM TEACHER t, ROOM r, SGROUP g, LECTURE l

WHERE l.TchFK=t.TchPK AND l.RomFK=r.RomPK AND l.GrpFK=g.GrpPK AND r.Seats BETWEEN 25 AND 50 AND g.Quantity

BETWEEN 15 AND 35;

ВАРИАНТ 15(5) Использование предикатов IN и LIKE

Вывести названия кафедр, группам которых на 3 курсе читают дисциплины, в названии которых имеется следующая подстрока: между буквами 'с'и 'д' имеются две любих других буквы.

SELECT d.Name

FROM DEPARTMENT d, SGROUP g, LECTURE l, SUBJECT s

WHERE d.DepPK=g.DepFK AND g.GrpPK=l.GrpFK AND l.SbjFK=s.SbjPK AND

g.Course=3 AND LOWER(s.Name) LIKE

'%с__д%';