Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (2011) / Апухтин / Лабораторная работа 5.docx
Скачиваний:
48
Добавлен:
28.06.2014
Размер:
496.02 Кб
Скачать

Национальный исследовательский университет

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

Лабораторная работа по курсу БД.

№ 5

Выполнили студенты группы

А-13-08

Апухтин М.А., Асонов А.В.

Проверила Сидорова Н.П.

Цель:

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

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

Задание необходимо выполнить двумя способами: 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