МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННАЯ СЛУЖБА РЕЧНОГО ФЛОТА
НОВОСИБИРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ
ВОДНОГО ТРАНСПОРТА
Электромеханический факультет
Дисциплина «основы 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).
Ссылка на скачивание - внизу страницы.