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

Лабораторные работы (А-13-07) / Дудкина, Захаров / Отчет по лабораторной работе №5

.docx
Скачиваний:
41
Добавлен:
28.06.2014
Размер:
413.68 Кб
Скачать

Московский Энергетический Институт, Технический Университет

ЛАБОРАТОРНАЯ РАБОТА №5

Студенты: Дудкина А., Захаров Д.

Группа: А-13-07

Вариант: 1

Преподаватель: Сидорова Н.П.

2010г.

Цель работы

  1. Научиться выполнять одномерные статистические запросы по одной и по нескольким таблицам БД.

  1. Практически освоить создание и использование простых хранимых процедур для выполнения запросов.

Задания

Задание 1

Выдать статистику по учебным заведениям вашего государства только прием 1990 года. Отчет должен начинаться заголовком и цифрой ­общим количеством записей по запросу (по приему 90-го года). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.

Запрос:

create procedure z1 as

select COUNT(*) as 'Количество принятых в 1990г.' from cir

where cir.gp = '90'

select V.uch_zavedenie, COUNT(*) as 'Принято в 1990г.' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.gp = '90'

group by V.uch_zavedenie

having COUNT(*) > 0

Результат:

Задание 2

Выдать статистику по городам вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень городов с циф­рами, не равными нулю.

Запрос:

create procedure z2 as

select COUNT(*) as 'Общее количество человек' from cir

select V.nazvanie_goroda, COUNT(*) as 'Количество человек' from cir as G

join vuz_gorod as V on G.vuz_k = V.cod_vuza

group by V.nazvanie_goroda

having COUNT(*) > 0

Результат:

Задание 3

Выдать статистику по вашему государству по следующим специаль­ностям: 0202, 0203, 0205, 0206 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специ­альностям. Отчет должен начинаться с соответствующего заголовка. Да­лее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивает­ся перечнем учебных заведений с цифрами, не равными нулю.

Запрос:

create procedure z3 as

select COUNT (*) as 'Общее количество студентов по данным специальностям' from cir

where spec in ('002105', '002908', '002201', '000655')

select G.spec as 'Специальность 002105', V.uch_zavedenie, COUNT(*) as 'Количество групп', SUM(COUNT(*)) OVER() as 'Всего' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.spec = '002105'

Group by G.spec, V.uch_zavedenie

HAVING COUNT(*) > 0;

select G.spec as 'Специальность 002908', V.uch_zavedenie, COUNT(*) as 'Количество групп', SUM(COUNT(*)) OVER() as 'Всего' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.spec = '002908'

Group by G.spec, V.uch_zavedenie

HAVING COUNT(*) > 0;

select G.spec as 'Специальность 002201', V.uch_zavedenie, COUNT(*) as 'Количество групп', SUM(COUNT(*)) OVER() as 'Всего' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.spec = '002201'

Group by G.spec, V.uch_zavedenie

HAVING COUNT(*) > 0;

select G.spec as 'Специальность 000655', V.uch_zavedenie, COUNT(*) as 'Количество групп', SUM(COUNT(*)) OVER() as 'Всего' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.spec = '000655'

Group by G.spec, V.uch_zavedenie

HAVING COUNT(*) > 0;

Результат:

Задание 4

Выдать статистику по учебным заведениям вашего государства и только по лицам мужского пола. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (всего мужчин). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.

Запрос:

create procedure z4 as

select COUNT(*) as 'Общее количество мужчин' from cir

where pol = 'М';

select V.uch_zavedenie, COUNT(*) as 'Количество мужчин' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.pol = 'М'

group by V.uch_zavedenie

having COUNT(*) > 0

Результат:

Задание 5

Выдать статистику по всем специальностям вашего государства и только по студентам, заканчивающим учебу в 1994 году. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу (всего студентов-выпускников 1994 г.). Далее таб­лица, включающая перечень шифров специальностей с цифрами, не равны­ми нулю.

Запрос:

create procedure z5 as

select COUNT(*) as 'Общее количество студентов-выпускников 1994г.' from cir

where gok = '94'

select G.spec, COUNT(*) as 'Количество студентов-выпускников 1994г.' from cir as G

join vuz as V on G.vuz_k = V.cod

where G.gok = '94'

group by G.spec

having COUNT(*) > 0

Результат:

Задание 6

Выдать статистику по годам приема учащихся вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень го­дов приема с цифрами, не равными нулю.

Запрос:

create procedure z6 as

select COUNT(*) as 'Общее количество принятых студентов' from cir

select G.gp, COUNT(*) as 'Количество принятых студентов' from cir as G

group by G.gp

having COUNT(*) > 0

Результат:

Задание 7

Выдать статистику по годам окончания учебы учащихся вашего го­сударства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включа­ющая перечень годов окончания с цифрами, не равными нулю.

Запрос:

create procedure z7 as

select COUNT(*) as 'Общее количество студентов' from cir

select G.gok, COUNT(*) as 'Количество студентов' from cir as G

group by G.gok

having COUNT(*) > 0

Результат: