合肥工业大学—SQL Server数据库实验九:视图的定义与使用
视图的定义与使用
- 1. 定义视图
- 2. 使用视图
1. 定义视图
在EDUC数据库中,已Student、Course 和SC表为基础完成一下视图定义:
1) 定义视图V_SC_G:该视图包含Student、 Course 和SC表中学生的学号、姓名、课程号、课程名和成绩
-- 定义视图V_SC_G:该视图包含Student、 Course 和SC表中学生的学号、姓名、课程号、课程名和成绩
create view V_SC_G as select st_id,st_name,cs_id,cs_name,sc_gradefrom student,course,select_coursewhere st_id = sc_id and cs_id = sc_num
go
2) 定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换
-- 定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换
create view V_YEAR(st_id,birth) asselect st_id,YEAR(GETDATE())-datediff(year,st_born,getdate()) from student
go
3) 定义视图V_AVG_S_G:该视图将反映学生选修课程的门数及平均成绩
-- 定义视图V_AVG_S_G:该视图将反映学生选修课程的门数及平均成绩;
create view V_AVG_S_G(sno,count,avg_grade) asselect sc_id,count(*),avg(sc_grade) from select_coursegroup by sc_id
go
4) 定义视图V_AVG_C_G:该视图将统计各门课程的选修人数及平均成绩
-- 定义视图V_AVG_C_G:该视图将统计各门课程的选修人数及平均成绩
create view V_AVG_C_G(cno,count,avg_grade) asselect sc_num,count(*),avg(sc_grade) from select_course group by sc_num
go
5)定义一个学生表的行列子集视图V_S:该视图包含学生的学号、姓名、专业号
-- 定义一个学生表的行列子集视图V_S:该视图包含学生的学号、姓名、专业号
create view V_S asselect st_id,st_name,tc_mj from student
go
6)定义一个视图V_SC:该视图包含学号、姓名、课程号、成绩
-- 定义一个视图V_SC:该视图包含学号、姓名、课程号、成绩
create view V_SC asselect st_id,st_name,cs_id,sc_gradefrom student,course,select_coursewhere st_id = sc_id and cs_id = sc_num
go
2. 使用视图
1)查询以上所建的视图结果
-- 查询以上所建的视图结果
select * from V_SC_G
select * from V_YEAR
select * from V_AVG_S_G
select * from V_AVG_C_G
select * from V_S
select * from V_SC
2) 查询平均成绩为90分及以上的学生学号、姓名和成绩
-- 查询平均成绩为90分及以上的学生学号、姓名和成绩
select distinct st_id,st_name,avg_grade
from V_SC_G,V_AVG_S_G
where sno = st_id
and avg_grade>90
3) 查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩
-- 查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩
select st_id,cno,sc_grade,avg_grade
from V_AVG_C_G,V_SC
where cs_id = cno
and sc_grade > avg_grade
4) 查询2000年出生的学生学号和姓名
-- 查询2000年出生的学生学号和姓名
select V_S.st_id,st_name
from V_S,V_YEAR
where V_S.st_id = V_YEAR.st_id
and birth = 2000
5) 将学生“钟嗣儒”的专业号改为“22” (数据视实际数据而定)
-- 将学生“钟嗣儒”的专业号改为“22”
update V_S
set tc_mj = 22
where st_name='钟嗣儒'
6) 利用视图V_SC将学号为“2018217876”、课程号为“100”的成绩改为85分
-- 利用视图V_SC将学号为“2018217876”、课程号为“100”的成绩改为85分
update V_SC
set sc_grade = 85
where st_id = 2018217876
合肥工业大学—SQL Server数据库实验九:视图的定义与使用相关推荐
- 合肥工业大学—SQL Server数据库实验四:数据库的分离和附加
数据库的分离和附加 1. 数据库分离 2. 数据库附加 1. 数据库分离 当SQL Server服务器运行时,该服务器上所有的数据库自动处于运行状态,而运行中的数据库文件是无法进行数据库文件的拷贝的. ...
- 合肥工业大学—SQL Server数据库实验十:用户及其权限管理
用户及其权限管理 1. 创建登录名Mylog及密码 2. 创建用户user2关联登录名 3. 创建角色role1 4. 对用户user2及角色role1授权 5. 验证用户授权 6. 收回用户权限 1 ...
- 合肥工业大学—SQL Server数据库实验五:创建和删除索引
创建和删除索引 1. 用SQL语句建立索引 2. 用SQL语句删除索引Stuspno 1. 用SQL语句建立索引 (1)应用场景:在教务管理系统中,经常需要通过学生的姓名查询学生的基本信息,学生人数大 ...
- 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...
- 合肥工业大学—SQL Server数据库实验八:使用聚集函数的SELECT语句
在数据库EDUC中用SQL语句实现如下查询: 1) 查询学生的总人数 -- 查询学生的总人数 select count(*) from student select count(1) from stu ...
- 合肥工业大学—SQL Server数据库实验二:数据库架构的创建与使用
数据库架构的创建与使用 1. 创建架构MySch 2. 创建一个登录名log1 3. 创建用户user1,关联登录名与架构 4. 创建架构Schema1,授予用户user1 5. 在当前架构DBO(默 ...
- 合肥工业大学—SQL Server数据库实验一:数据库的创建和删除
数据库的创建和删除 1. 创建数据库EDUC 2. 创建数据库TestDB 3. 删除数据库TestDB 4. 设置当前数据库为EDUC 1. 创建数据库EDUC 数据库名称:EDUC 数据库存储路径 ...
- 合肥工业大学—SQL Server数据库实验七:数据查询
数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...
- 合肥工业大学—SQL Server数据库实验六:数据更新操作
数据更新操作 1. 数据插入 2. 数据修改 3. 数据删除 1. 数据插入 依次将准备好的数据用Insert Into语句将数据插入相应的基本表: 正确数据的插入,这些数据应该不会违反完整性约束 注 ...
最新文章
- 软件包管理(rpmyum)
- python在线投票系统 统计票数_分层分平台,让每个学生享受教育公平 ——冯敬益老师的Python编程教学探索...
- Ie6下asp.net 中treeview自动随鼠标变小的修复
- shutil模块,为什么说它是os模块的兄弟模块?
- java 什么时候依赖注入_玩框架java依赖注入 – 何时使用单例
- .net Reactor之exe、dll文件混淆
- 信用评分系统运行原理上篇
- 阿里妈妈大规模在线分层实验实践
- 插入附件 文件名显示不全_批量插入、提取图片,这几招要会掌握
- iweboffice2015库文件WebOffice.js中新增删除两个书签之间的内容实现
- APP专项测试——弱网测试
- 【JS基础】JavaScript语言简介及简单例子
- Java大数据-Hadoop-HDFS的读数据流程(原理)
- 小米平板2可以装鸿蒙系统,搞定LOL?Win10版小米平板2游戏性能实测
- 如何进入bios设置U盘启动的教程,如何在bios设置u盘启动项
- 99% 的程序员想不到的一个技巧,绝对让领导眼前一亮,好感倍增!
- 字节跳动三场技术面+HR面,掌握这些知识点再也不怕面试通不过!
- 硬件:Nand Flash、Nor Flash
- 【个人记录 | 研二预答辩】
- 58字体加密解决思路
热门文章
- 2022-2028年中国PVC糊树脂行业市场深度分析及市场规模预测报告
- linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
- Python3 reversed 函数
- ARM CPU自动调度神经网络
- NVIDIA CUDA-X AI
- mysql error number 1130,[转]mysql error number 1130的解决方法
- Python 赋值运算符
- python 集合的使用
- Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
- android 调用裁切板