Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

уд5_

.doc
Скачиваний:
16
Добавлен:
15.03.2015
Размер:
903.17 Кб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М.А. Бонч-Бруевича

факультет Информационных систем и технологий

Отчёт по лабораторной работе №5

Контрольная работа

Предмет: Управление данными

Выполнил: студент группы ИСТ-03

Брынский А.О.

Санкт-Петербург

2013

Вариант №2

Создать запросы, отвечающие на следующие вопросы:

  1. Вывести фамилии и инициалы студентов, получивших пятерку по математике и тройку по физике.

select фамилия f, substr(имя, 1, 1) || '.' i,substr(отчество, 1, 1) || '.' o

from студенты s

where exists (select 1

from успеваемость u,дисциплины d

where u.номер_студента = s.номер_студента

and u.номер_дисциплины = d.номер_дисциплины

and d.название='Физика'

and u.оценка = 3) and exists (select 1

from успеваемость u,дисциплины d

where u.номер_студента = s.номер_студента

and u.номер_дисциплины = d.номер_дисциплины

and d.название='Математика'

and u.оценка = 5)

  1. Вывести фамилии студентов, получивших на экзамене только пятерки.

select фамилия f

from студенты s

where

exists (select 1

from успеваемость u

where u.номер_студента = s.номер_студента

and u.оценка = 5) and

not exists (select 1

from успеваемость u

where u.номер_студента = s.номер_студента

and u.оценка in (1,2,3,4))

  1. Подсчитать количество студентов, сдававших предмет Математику с первого раза.

select count(*)

from студенты s

where (select count(*)

from успеваемость u,дисциплины d

where u.номер_студента = s.номер_студента

and u.номер_дисциплины = d.номер_дисциплины

and d.название='Математика') = 1

  1. Вывести номера студентов и средний балл студентов, средний балл которых не менее 4,5. В выборку не должны попасть студенты, имеющие хотя бы одну 2.

select номер_студента, avg(оценка)

from успеваемость u1

where not exists (select 1

from успеваемость u2

where u2.номер_студента = u1.номер_студента

and u2.оценка = 2)

group by номер_студента

having avg(оценка) >= 4.5

  1. Определить преподавателей, которые подчиняются Викулиной В.А. и получают среди этих преподавателей минимальную зарплату.

select *

from преподаватели a,преподаватели b

where

a.подчиняется=b.номер_преподавателя

and b.фамилия ||' '||b.имя||' '||b.отчество='Викулина Валентина Ивановна'

and a.зарплата = (select min(c.зарплата)

from преподаватели c,преподаватели d

where c.подчиняется = d.номер_преподавателя

and d.фамилия ||' '||d.имя||' '||d.отчество='Викулина Валентина Ивановна')

  1. Вывести список студентов, у которых хотя бы по одному предмету оценка выше средней оценки по всему списку.

select distinct s.*

from студенты s,

успеваемость u,

(select номер_дисциплины, avg(оценка) avg_oc

from успеваемость

group by номер_дисциплины) avg_tab

where s.номер_студента = u.номер_студента

and u.номер_дисциплины = avg_tab.номер_дисциплины

and u.оценка > avg_tab.avg_oc;

  1. Вывести информацию о преподавателях, которые не имеют подчиненных и не проводят занятий ни по одному предмету.

select *

from преподаватели p

where номер_преподавателя not in

(select distinct подчиняется

from преподаватели

where подчиняется is not null)

and not exists (select 1

from дисциплины d

where d.номер_преподавателя = p.номер_преподавателя)

  1. Вывести список студентов, сдавших экзамены по Физике и по Математике, и при этом не сдававших Химию.

select distinct s.*

from студенты s,

успеваемость u1,

успеваемость u2

where s.номер_студента = u1.номер_студента

and s.номер_студента = u2.номер_студента

and u1.номер_дисциплины = (select номер_дисциплины from дисциплины where название='Математика')

and u2.номер_дисциплины = (select номер_дисциплины from дисциплины where название='Физика')

and not exists (select 1

from успеваемость u, дисциплины d

where u.номер_студента = s.номер_студента

and u.номер_дисциплины = d.номер_дисциплины

and d.название='Химия')

Вывод

Созданы запросы, отвечающие на вопросы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]