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

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

ИНСТИТУТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ

Лабораторная работа № 3.

Операции соединения нескольких таблиц бд при выполнении сложных списковых запросов.

Выполнили

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

каф. Прикладной Математики

Буренков Сергей

Захаров Антон

Москва, 2011

Задание 1

Выдать список студентов и аспирантов вашего государства и с фамилиями, начинающимися на букву М. Отчёт должен включать все поля, кроме полей НОМЕР и СЕМ_ПОЛОЖЕНИЕ. Поля КАТ_ОБУЧЕНИЯ_К и ВУЗ_К долж­ны быть раскодированы. Данные отсортировать по категориям обучения и учебным заведениям.

Запрос:

SELECT

fio AS 'Фамилия Имя Отчество',

data_rogden AS 'Дата рождения',

pol AS 'Пол',

spec AS 'Специальность',

kat_obucheniya AS 'Категория обучения',

uch_zavedenie AS 'Учебное заведение',

mp AS 'Месяц приёма',

gp AS 'Год приёма',

mo AS 'Месяц окончания',

gok AS 'Год окончания'

FROM arm

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

JOIN vuz ON vuz.cod = vuz_k

WHERE kat_obuch_k IN('03', '07') AND fio LIKE 'М%'

ORDER BY kat_obuch_k, uch_zavedenie

Результат:

Задание 2

Выдать список выпускников 95 и 96 г.г. вашего государства по всем годам рождения, кроме 1963. Отчёт должен включать все поля, кроме полей НОМЕР и СЕМ_ПОЛОЖЕНИЕ. Поля КАТ_ОБУЧЕНИЯ_К и ВУЗ_К должны быть раскодированы. Данные отсортировать по годам окончания и учебным заведениям.

Запрос:

SELECT

fio AS 'Фамилия Имя Отчество',

data_rogden AS 'Дата рождения',

pol AS 'Пол',

spec AS 'Специальность',

kat_obucheniya AS 'Категория обучения',

uch_zavedenie AS 'Учебное заведение',

mp AS 'Месяц приёма',

gp AS 'Год приёма',

mo AS 'Месяц окончания',

gok AS 'Год окончания'

FROM arm

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

JOIN vuz ON vuz.cod = vuz_k

WHERE gok IN('95', '96') AND data_rogden NOT LIKE '%63'

ORDER BY gok, uch_zavedenie

Результат:

Задание 3

Выдать список учащихся вашего государства, принятых на учёбу в 1990 году и по всем специальностям, кроме 0101 и 0301. Отчёт должен включать все поля, кроме МЕСЯЦ_ПРИЕМА, ГОД_ПРИЕМА, НОМЕР. Поля СЕМ_ПОЛОЖЕНИЕ_К, КАТ_ОБУЧЕНИЯ_К и ВУЗ_К должны быть раскодированы. Данные отсортировать по учебным заведениям и специальностям.

Запрос:

SELECT

fio AS 'Фамилия Имя Отчество',

data_rogden AS 'Дата рождения',

pol AS 'Пол',

family_status AS 'Семейное положение',

spec AS 'Специальность',

kat_obucheniya AS 'Категория обучения',

uch_zavedenie AS 'Учебное заведение',

mo AS 'Месяц окончания',

gok AS 'Год окончания'

FROM arm

JOIN family ON family.cod = sem_polog_k

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

JOIN vuz ON vuz.cod = vuz_k

WHERE gp = '90' AND NOT spec IN('000101', '000301')

ORDER BY uch_zavedenie, spec

Результат:

Задание 4

Выдать список учащихся вашего государства только женского по­ла и с именами, не заканчивающимися на букву А. Отчёт должен включать все поля, кроме полей НОМЕР и ПОЛ. Поля СЕМ_ПОЛОЖЕНИЕ_К, ВУЗ_К и КАТ_ОБУЧЕНИЯ_К должны быть раскодированы. Данные отсортировать по специальностям.

Запрос:

SELECT

fio AS 'Фамилия Имя Отчество',

data_rogden AS 'Дата рождения',

family_status AS 'Семейное положение',

spec AS 'Специальность',

kat_obucheniya AS 'Категория обучения',

uch_zavedenie AS 'Учебное заведение',

mp AS 'Месяц приёма',

gp AS 'Год приёма',

mo AS 'Месяц окончания',

gok AS 'Год окончания'

FROM arm

JOIN family ON family.cod = sem_polog_k

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

JOIN vuz ON vuz.cod = vuz_k

WHERE pol = 'Ж' AND

NOT (

(fio LIKE '% %А %' AND fio NOT LIKE '% % %А' AND fio NOT LIKE '% % %А %') OR

fio LIKE '% %А %А' OR

fio LIKE '% %А %А %'

)

ORDER BY spec

Результат: