МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННАЯ СЛУЖБА РЕЧНОГО ФЛОТА
НОВОСИБИРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ
ВОДНОГО ТРАНСПОРТА
Электромеханический факультет
Дисциплина «основы SQL»
Лабораторная работа №3
Тема:Разработка представлений.
Группа ИТ-31 ″а″
Студент:
«__»___________2010 г.
_____________________
подпись
Студент: М.Г.
«__»___________2010 г.
_____________________
подпись
Студент:
«__»___________2010 г.
_____________________
подпись
Преподаватель:
«__»___________2010 г.
___________________
подпись
Новосибирск, 2010г.
Представления:
1) Вывод об определенных сведениях работника определенного подразделения.
create view one as select sotrudniki.id_sotrudnika,sotrudniki.familia, sotrudniki.imya, obrazovanie.nazvanie_uceb_zav, obrazovanie.specialnost,perevodi_po_otdelam.data_perevoda
from sotrudniki, obrazovanie,spisok_otdelov,perevodi_po_otdelam
where obrazovanie.id_sotrudnika=sotrudniki.id_sotrudnika
and perevodi_po_otdelam.id_sotrudnika=sotrudniki.id_sotrudnika
and spisok_otdelov.nazvanie='administraciya'

Рис.1-Таблица Сотрудники

Рис.2-Таблица Образование

Рис.3-ТаблицаПереводы по отделам

Рис.4-Таблица Список отделов

Рис.5-Сущность-Связь

Рис. 6- Результат представления №1
2) Сведения о работниках стаж работы, которых на фирме не менее … лет.
create view two as SELECT sotrudniki.familia, sotrudniki.imya, sotrudniki.otchestvo, spisok_dolgnostei.nazvanie,min(naznachenie_na_dolgnost.data_naznachenia)
FROM spisok_dolgnostei,naznachenie_na_dolgnost
JOIN sotrudniki ON sotrudniki.id_sotrudnika=naznachenie_na_dolgnost.id_sotrudnika
WHERE (year(now())-year(naznachenie_na_dolgnost.data_naznachenia))<=20 group by sotrudniki.familia,sotrudniki.imya

Рис.7-Таблица Сотрудники

Рис.8-Таблица Список должностей

Рис.9-Таблица Назначение на должность

Рис.10–Результат представления №2

Рис.11- Сущность—Связь
3) Вывод сведений о сотрудниках находящихся в отпуске в определенный период
create view tree as select sotrudniki.id_sotrudnika,sotrudniki.familia, sotrudniki.imya from sotrudniki
join otpuska on sotrudniki.id_sotrudnika=otpuska.id_sotrudnika
where day(otpuska.data_uhoda)<=day(201011030)>=day(otpuska.data_vozvrata)

Рис.12-Таблица Сотрудники

Рис.13-Тааблица Отпуска

Рис14-Результат представления №3

Рис.15-Сущность-связь
4) Сведения о работниках, у которых в текущем году наступает пенсионный возраст
create view four as SELECT familia, imya from sotrudniki where
(year(now())-year(sotrudniki.data_rogdenia))=30

Рис.16-Таблица Сотрудники

Рис.17-Результат представления №4

Рис.18-Сущность-связь
5) Вывод сведений о сотрудниках, у которых стаж работы на данной должности не менее … лет.
create view five as SELECT sotrudniki.familia, sotrudniki.imya, sotrudniki.otchestvo, spisok_dolgnostei.nazvanie,max(naznachenie_na_dolgnost.data_naznachenia)
FROM spisok_dolgnostei,naznachenie_na_dolgnost
JOIN sotrudniki ON sotrudniki.id_sotrudnika=naznachenie_na_dolgnost.id_sotrudnika
WHERE (year(now())-year(naznachenie_na_dolgnost.data_naznachenia))<=20 group by sotrudniki.familia,sotrudniki.imya

Рис.19-Таблица Сотрудники

Рис.20-Таблица Список должностей

Рис.21-Таблица Назначение на должность

Рис.22-Результат представления № 5

Рис.23- Сущность—Связь
6) Сведения о долгах фирмы по заработной плате перед определенным сотрудником
create view six as select ((select sum(summa) from zarplata)-(select sum(summa) from viplati))

Рис.24-Таблица Зарплата

Рис.25-Таблицаа Выплаты

Рис.-26-Результат представления №6

Рис.27-Сущность-Связь
7) Сведения о детях сотрудниках достигших 18 лет.
create view seven as select sotrudniki.id_sotrudnika,sotrudniki.familia as s_familia, sotrudniki.imya as s_imya, deti.familia as d_familia, deti.imya as d_imya from sotrudniki
join deti on sotrudniki.id_sotrudnika=deti.id_sotrudnika
where (year(now())-year(deti.data_rogdenia))<18

Рис.28-Таблица Сотрудники

Рис.29- Таблица Дети

Рис.32 –Результат представления №7

Рис31-Сущность-Связь
8) Вывод сведений о перемещениях по должностям и отделам определенного сотрудника.
create view eight as SELECT sotrudniki.familia, sotrudniki.imya, sotrudniki.otchestvo, spisok_dolgnostei.nazvanie as nazvanie_dolgnosti,naznachenie_na_dolgnost.data_naznachenia,spisok_otdelov.nazvanie as nazvanie_otdela, perevodi_po_otdelam.data_perevoda
FROM naznachenie_na_dolgnost,sotrudniki,spisok_dolgnostei,spisok_otdelov,perevodi_po_otdelam
where sotrudniki.familia='Borozdin'
and sotrudniki.id_sotrudnika=naznachenie_na_dolgnost.id_sotrudnika
and sotrudniki.id_sotrudnika=perevodi_po_otdelam.id_sotrudnika
and spisok_otdelov.Id_otdela=perevodi_po_otdelam.id_otdela
and naznachenie_na_dolgnost.id_dolgnosti=spisok_dolgnostei.id_dolgnosti

Рис.32-Таблица Список отделов

Рис.33-Таблица Сотрудники

Рис.34-Таблица Список должностей

Рис.35-Таблица Назначение на должность

Рис.36-Таблица Переводи по отделам

Рис.37-Результат представления №8
9) Вывод сведений о сумме отчислений в пенсионный фонд за 6 месяцев
create view nine as SELECT sum(zarplata.summa)*0.14
from zarplata
where zarplata.period>=20101108
and zarplata.period<=20101111

Рис.38-Таблица Зарплата

Рис.39- Результат представления №9

Рис.40-Сущность-Связь
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.