МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Лабораторная работа №5
по дисциплине
«Базы данных и экспертные системы»
подготовил:
студент группы А-13-08
Ганишев В.
проверил:
Сидорова Н.П.
Цель:
Научиться выполнять одномерные статистические запросы по одной и по нескольким таблицам БД.
Практически освоить создание и использование простых хранимых процедур для выполнения запросов.
Задание 1
Выдать статистику по учебным заведениям вашего государства только прием 1990 года. Отчет должен начинаться заголовком и цифрой общим количеством записей по запросу (по приему 90-го года). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
select COUNT(*) as 'Общее кол-во на 90г'
from bel
where gp = '90'
select vuz.uch_zavedenie as 'ВУЗ',
COUNT(*) as 'Принято в 90г'
from bel join vuz on cod = vuz_k
where gp = '90'
group by vuz.uch_zavedenie
Задание 2
Выдать статистику по городам вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень городов с цифрами, не равными нулю.
select COUNT(*) as 'Общее кол-во'
from bel
select vuz_gorod.nazvanie_goroda as 'Город',
COUNT(*) as 'Кол-во в каждом городе'
from bel join vuz_gorod on cod_vuza = vuz_k
group by vuz_gorod.nazvanie_goroda
Задание 3
Выдать статистику по вашему государству по следующим специальностям: 0202, 0203, 0205, 0206 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специальностям. Отчет должен начинаться с соответствующего заголовка. Далее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивается перечнем учебных заведений с цифрами, не равными нулю.
Создадим хранимую процедуру:
create procedure spec_poisk (@x char(6)) as
select @x as 'Специальность',
COUNT(*) as 'Общее кол-во
from bel
where spec = @x
select vuz.uch_zavedenie as 'ВУЗ',
COUNT(*) as 'Кол-во в каждом ВУЗе'
from bel join vuz on cod = vuz_k
where spec = @x
group by vuz.uch_zavedenie
Вызов:
exec spec_poisk '000601'
exec spec_poisk '000602'
exec spec_poisk '000604'
exec spec_poisk '000608'
Задание 4
Выдать статистику по учебным заведениям вашего государства и только по лицам мужского пола. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (всего мужчин). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.
select COUNT(*) as 'Общее кол-во'
from bel
where pol = 'М'
select vuz.uch_zavedenie as 'ВУЗ',
COUNT(*) as 'Кол-во в каждом ВУЗе'
from bel join vuz on cod = vuz_k
where pol = 'М'
group by vuz.uch_zavedenie
Задание 5
Выдать статистику по всем специальностям вашего государства и только по студентам, заканчивающим учебу в 1994 году. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу (всего студентов-выпускников 1994 г.). Далее таблица, включающая перечень шифров специальностей с цифрами, не равными нулю.
select COUNT(*) as 'Общее кол-во'
from bel
where gok = '94'
select spec as 'Специальность',
COUNT(*) as 'Кол-во'
from bel
where gok = '94'
group by spec