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

МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Лабораторная работа №5

по дисциплине

«Базы данных и экспертные системы»

подготовил:

студент группы А-13-08

Ганишев В.

проверил:

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

Цель:

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

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

Задание 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