Кашина_ТРиЗБД_ЛБ5
.docxМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«Владимирский государственный университет
имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВлГУ)
Колледж инновационных технологий и предпринимательства
КАФЕДРА ФИЗИКИ И ПРИКЛАДНОЙ МАТЕМАТИКИ
Лабораторная работа № 5
по дисциплине «Технология разработки и защиты баз данных»
на тему: «Создание и управление представлениями.»
Выполнил
студент группы ИПсп-123
Кашина Д. А.
Принял
Кабанова М.Ю.
Владимир, 2025
Цель работы: 1. Изучить назначение представлений баз данных, синтаксиса и семантики команд языка Transact-SQL для их создания, изменения и удаления, системных хранимых процедур для получения информации о представлениях, а также приобретение навыков их создания с помощью графических средств утилиты Enterprise Manager и мастера Create View Wizard.
Ход работы:
Создайте представление, содержащее список студентов, которые учатся на 3 курсе со стипендией меньше 150 и используйте его.
/*кашина 26.09.25
Создайте представление, содержащее список студентов, которые учатся на 3 курсе со
стипендией меньше 150 и используйте его.*/
USE University_Кашина_Диана
GO
CREATE VIEW StudentsView
AS
SELECT Sutname, Sutfname, Kurs, Stipend
FROM Student1
WHERE Kurs = 3 AND Stipend < 150
GO
SELECT Sutname, Sutfname, Kurs, Stipend
FROM StudentsView
Создайте представление, содержащее список кафедр, среднюю зарплату
преподавателей, которые работают в них, общую сумму всех выплат на кафедрах, и используйте его.
/*Кашина 26.09.25
Создайте представление, содержащее список кафедр, среднюю зарплату
преподавателей, которые работают в них, общую сумму всех выплат на кафедрах, и
используйте его.*/
USE University_Кашина_Диана
GO
CREATE VIEW DepartmentSalariesView AS
SELECT
k.kod_kafedru,
k.Name_kafedru AS Кафедра,
AVG(t.salary + ISNULL(t.rise, 0)) AS Средняя_зарплата,
SUM(t.salary + ISNULL(t.rise, 0)) AS Общая_сумма_выплат
FROM dbo.Kafedra k
LEFT JOIN dbo.Teacher t ON k.kod_kafedru = t.kod_kafedru
GROUP BY k.kod_kafedru, k.Name_kafedru;
SELECT * FROM DepartmentSalariesView;
Создайте представление, содержащее фамилии преподавателей, их должность, звание, степень, место работы, количество их экзаменов, и используйте его.
/*Кашина 26.09.25
Создайте представление, содержащее фамилии преподавателей, их должность, звание, степень,
место работы, количество их экзаменов, и используйте его.*/
USE University_Кашина_Диана
GO
CREATE VIEW TeacherView AS
SELECT
name_teacher,
dolgnost,
zvanie,
jobplace,
COUNT(ekzamen) AS количество_экзаменов
FROM Teacher
GROUP BY
name_teacher,
dolgnost,
zvanie,
jobplace;
/*Кашина 26.09.25
Создайте представление, содержащее фамилии преподавателей, их должность, звание, степень,
место работы, количество их экзаменов, и используйте его.*/
USE University_Кашина_Диана
SELECT * FROM TeacherView;
Создайте представление, содержащее список студентов, курс, группу, выпускающую кафедру, зав. кафедрой, название факультета, директора факультета.
/*Кашина 26.09.25
Создайте представление, содержащее список студентов, курс, группу, выпускающую кафедру,
зав. кафедрой, название факультета, директора факультета.*/
CREATE VIEW v_Студенты_Факультеты_Кафедры AS
SELECT
s.Sutname AS Фамилия,
s.Sutfname AS Имя,
s.Kurs AS Курс,
s.Groupname AS Группа,
k.Name_kafedru AS Кафедра,
k.Fio_zavkaf AS Зав_кафедрой,
f.Name_faculteta AS Факультет,
f.director AS Директор_факультета
FROM
dbo.Student1 s
LEFT JOIN
dbo.Kafedra k ON s.kod_kafedru = k.kod_kafedru
LEFT JOIN
dbo.Facultet f ON k.kod_faculteta = f.kod_faculteta;
/*Кашина 26.09.25
Создайте представление, содержащее список студентов, курс, группу, выпускающую кафедру,
зав. кафедрой, название факультета, директора факультета.*/
USE University_Кашина_Диана
SELECT * FROM v_Студенты_Факультеты_Кафедры;
Напишите команды для удаления всех созданных вами представлений.
/* Кашина 26.09.25
Напишите команды для удаления всех созданных вами представлений.*/
DROP VIEW IF EXISTS StudentsView;
DROP VIEW IF EXISTS v_Студенты_Факультеты_Кафедры;
DROP VIEW IF EXISTS DepartmentSalariesView;
DROP VIEW IF EXISTS TeacherView;
Вывод: в ходе лабораторной работы были изучены назначения представлений баз данных, синтаксиса и семантики команд языка Transact-SQL для их создания, изменения и удаления, системных хранимых процедур для получения информации о представлениях, а также приобретен навыки создания с помощью графических средств утилиты Enterprise Manager и мастера Create View Wizard.
