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

news/2024/11/8 14:40:10/

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

 

目录

 ✨一、实验目的和要求

✨二、实验内容

✨三、实验结果

 ✨四.实验总结


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


 ✨一、实验目的和要求

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

 ✨四.实验总结

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


http://www.ppmy.cn/news/85187.html

相关文章

PMP常考知识点整理

1十大知识领域之项目整合管理 ❒ 变更控制流程&#xff08;简化版&#xff09; 书面记录变更请求→分析影响→提交CCB进行审批→批准或者拒绝→若批准&#xff0c;先修改计划&#xff08;体现变更&#xff09;&#xff0c;再通知变更受影响相关方&#xff0c;最后再执行、追踪…

代码随想录算法训练营day48 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III

代码随想录算法训练营day48 | 198.打家劫舍&#xff0c;213.打家劫舍II&#xff0c;337.打家劫舍III 198.打家劫舍解法一&#xff1a;动态规划 213.打家劫舍II解法一&#xff1a;分别掐头和去尾&#xff0c;动态规划 337.打家劫舍III解法一&#xff1a;树的递归遍历动态规划 总…

性能测试工程师必看——性能测试报告模板

目录 1. 测试概述 1.1 测试目标 1.2 指标和术语 2. 环境、工具 2.1 测试环境 2.2 测试工具 3. 测试方案 3.1 测试类型 3.2 业务模型 3.3 加密验签处理 3.4 压力梯度 4. 测试结果 4.1 聚合报告 4.2 系统吞吐量 4.3 资源占用率 5. 分析和建议 5.1 测试结论分析 …

网络安全就业有什么要求?一般人还真不行

前言 网络安全工程师又叫信息安全工程师。随着互联网发展和 IT 技术的普及&#xff0c;网络和 IT 已经日渐深入到日常生活和工作当中&#xff0c;社会信息化和信息网络化&#xff0c;突破了应用信息在时间和空间上的障碍&#xff0c;使信息的价值不断提高。但是与此同时&#…

【学习日记2023.5.22】 之 套餐模块完善

4. 功能模块完善之套餐模块 4.1 新增套餐 4.1.1 需求分析与设计 产品原型 后台系统中可以管理套餐信息&#xff0c;通过 新增功能来添加一个新的套餐&#xff0c;在添加套餐时需要添加套餐对应菜品的信息&#xff0c;并且需要上传套餐图片。 新增套餐原型&#xff1a; 当填…

【解决】前端项目编译卡在95% emitting HtmlWebpackPlugin很长时间

快速出击 原因 &#xff1a;问题原因最终定位在部分依赖版本不兼容&#xff0c;不适配。 解决方案 &#xff1a;删除node_modules文件夹&#xff0c;拷贝编译速度不慢人员电脑中的package-lock.json文件&#xff0c;然后执行npm install&#xff08;或者直接把node_modules打包…

GitLab Dogfooding 实践:Web API 模糊测试

本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Eugene Lim&#xff0c;Mike Eddington 译者&#xff1a;极狐(GitLab) 市场部内容团队 在极狐GitLab/GitLab 内部&#xff0c;我们用 Dogfooding 文化来帮助更好地理解产品、解决痛点以及配置错误&#xff0c;构建一个更…

数据库学习2

加密函数 SELECT USER() FROM DUAL;--用户ip地址 SELECT DATABASE();--查看当前数据库名称 SELECT MD5(hsp) FROM DUAL;--为字符串算出32字符串&#xff0c;常用加密 SELECT LENGTH(MD5(hsp)) FROM DUAL; CREATE TABLE hsp_user( id INT, name VARCHAR(32) NOT NULL DEFAULT ,…