Национальный исследовательский университет
Московский Энергетический Институт
Лабораторная работа по курсу БД.
№ 5
Выполнили студенты группы
А-13-08
Апухтин М.А., Асонов А.В.
Проверила Сидорова Н.П.
Цель:
Научиться выполнять одномерные статистические запросы по одной и по нескольким таблицам БД.
Практически освоить создание и использование простых хранимых процедур для выполнения запросов.
Задание необходимо выполнить двумя способами: 1) в диалоговом SQL; 2) с помощью хранимой процедуры.
Задание 1
Выдать статистику по учебным заведениям вашего государства только прием 1990 года. Отчет должен начинаться заголовком и цифрой общим количеством записей по запросу (по приему 90-го года). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
create procedure zapr1 @god_post char(2) as
select count(*) as "Всего учащихся"
from azer
where gp = @god_post
select vuz.uch_zavedenie as "Учебное заведение", count(*) as "Число учащихся"
from azer join vuz on vuz_k=vuz.cod
where gp = @god_post
group by vuz.uch_zavedenie
Задание 2
Выдать статистику по городам вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень городов с цифрами, не равными нулю.
create procedure zapr2 as
select count(*) as "Всего учащихся"
from azer join vuz_gorod on vuz_k=vuz_gorod.cod_vuza
where vuz_gorod.nazvanie_stran like 'АЗЕРБАЙДЖАН%'
select vuz_gorod.nazvanie_goroda as "Название города", count(*) as "Число учащихся"
from azer join vuz_gorod on vuz_k=vuz_gorod.cod_vuza
where vuz_gorod.nazvanie_stran like 'АЗЕРБАЙДЖАН%'
group by vuz_gorod.nazvanie_goroda
Задание 3
Выдать статистику по вашему государству по следующим специальностям: 0202, 0203, 0205, 0206 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специальностям. Отчет должен начинаться с соответствующего заголовка. Далее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивается перечнем учебных заведений с цифрами, не равными нулю.
create procedure zapr3 as
select spec as "Специальность", count(*) as "Всего учащихся"
from azer
where spec in ('000202','000203','000205','000206')
group by spec
select spec as "Специальность",vuz.uch_zavedenie as "Учебное заведение", count(*) as "Число учащихся"
from azer join vuz on vuz_k=vuz.cod
where spec in ('000202','000203','000205','000206')
group by spec,vuz.uch_zavedenie
Задание 4
Выдать статистику по учебным заведениям вашего государства и только по лицам мужского пола. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (всего мужчин). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
create procedure zapr4 @pol char(1) as
select count(*) as "Всего учащихся"
from azer
where pol = @pol
select vuz.uch_zavedenie as "Учебное заведение", count(*) as "Число учащихся"
from azer join vuz on vuz_k=vuz.cod
where pol = @pol
group by vuz.uch_zavedenie
Задание 5
Выдать статистику по всем специальностям вашего государства и только по студентам, заканчивающим учебу в 1994 году. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу (всего студентов-выпускников 1994 г.). Далее таблица, включающая перечень шифров специальностей с цифрами, не равными нулю.
create procedure zapr5 as
select count(*) as "Всего учащихся"
from azer
where gok = '94'
select spec as "Специальность", count(*) as "Число учащихся"
from azer
where gok = '94'
group by spec