​数据库原理及应用上机(实验六 视图的定义和维护)

该实验报告详细介绍了如何使用SQL语言创建、删除和查询视图,包括数学系学生视图、学生课程成绩视图以及学生出生年份视图。此外,还展示了如何通过数据库管理工具SSMS进行视图操作,并提供了若干实例来说明视图的更新和维护。实验总结强调了视图在数据查询和安全性方面的实用性。
摘要由CSDN通过智能技术生成

作者:命运之光 
专栏:数据库原理及应用上机实验

 

目录

 ✨一、实验目的和要求

✨二、实验内容

✨三、实验结果

 ✨四.实验总结


🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 


 ✨一、实验目的和要求

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”的记录。

 ✨四.实验总结

通过本次实验,我们了解了视图的定义和维护,学会了创建、修改和删除视图的方法,以及如何查询视图中的数据。视图在实际的数据库应用中具有广泛的应用价值,可以方便快捷地满足复杂的查询需求,同时也可以保护数据的安全性。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值