✨作者:命运之光
✨专栏:数据库原理及应用上机实验
目录
✨一、实验目的和要求
✨二、实验内容
✨三、实验结果
✨四.实验总结
🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓
✨一、实验目的和要求
1.掌握SQL视图建立、修改和删除;
2.掌握SQL视图查询。
✨二、实验内容
方法一:利用SQL语言实现视图的建立、删除、查询、更新
(一)定义视图
1 建立视图
例1 建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有数学系(MA)的学生,视图的属性名为Sno,Sname,Sage,Sdept。
CREATE VIEW C_Student
AS
SELECT Sno, Sname, Sage, Sdept
FROM Student
WHERE Sdept= '数学系'
WITH CHECK OPTION
例2 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。
本视图由三个基本表的连接操作导出,其SQL语句如下:
CREATE VIEW Student_CR
AS
SELECT Student.Sno, Sname, Cname, Grade
FROM Student, SC, Course
WHERE Student.Sno= SC.Sno AND SC.Cno=Course.Cno
例3 定义一个反映学生出生年份的视图。
CREATE VIEW Student_birth(Sno, Sname, Sbirth)
AS SELECT Sno, Sname, 2023-Sage
FROM Student
2 删除视图
例4 删除视图Student_CR。
DROP VIEW Student_CR;
(二)查询视图
例5 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
SELECT Sname, Sage
FROM C_Student
WHERE Sage<20;
说明:本例转换后的查询语句为:
SELECT Sname, Sage
FROM Student
WHERE Sdept= '数学系' AND Sage<20;
例6 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。
SELECT Sno, Sname, Cname
FROM Student_CR
WHERE Grade>85;
(三)更新视图
例7 将数学系(MA)学生视图C_Student中学号为200215123的学生姓名改为“黄海”。
UPDATE C_Student
SET Sname='黄海'
WHERE Sno='200215123';
说明:DBMS自动转换为对基本表的更新语句如下:
UPDATE Student
SET Sname='黄海'
WHERE Sno='200215123' AND Sdept='数学系';
例8 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“200215124”,姓名为“王海”,年龄为20岁。
INSERT
INTO C_Student
VALUES ('200215124', '王海', 20, '数学系');
例9 删除数学系学生视图C_Student中学号为“200215124”的记录。
DELETE
FROM C_Student
WHERE Sno= '200215124'
方法二:SSMS数据库管理工具实现视图的建立、删除、查询、更新
1.创建视图
(1)连接数据库,选择数据库,展开数据库->右键视图->选择新建视图
(2)在添加表弹出框->选择要创建视图的表、视图等->点击添加->添加完成后选择关闭。
(3)在关系图窗格中-》选择表与表之间关联的数据列-》选择列的其他排序或筛选条件。
(4)点击保存或者ctrl+s-》刷新视图-》查看结果。
2.查询视图。
3.删除视图
在视图上右键-》删除。
✨三、实验结果
例1 建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有数学系(MA)的学生,视图的属性名为Sno,Sname,Sage,Sdept。
例2 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。
例3 定义一个反映学生出生年份的视图。
例4 删除视图
例5 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
例6在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。
例7 将数学系(MA)学生视图C_Student中学号为200215123的学生姓名改为“黄海”。
例8 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“200215124”,姓名为“王海”,年龄为20岁。
例9 删除数学系学生视图C_Student中学号为“200215124”的记录。
✨四.实验总结
通过本次实验,我们了解了视图的定义和维护,学会了创建、修改和删除视图的方法,以及如何查询视图中的数据。视图在实际的数据库应用中具有广泛的应用价值,可以方便快捷地满足复杂的查询需求,同时也可以保护数据的安全性。