视图的定义与使用

  • 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数据库实验九:视图的定义与使用相关推荐

  1. 合肥工业大学—SQL Server数据库实验四:数据库的分离和附加

    数据库的分离和附加 1. 数据库分离 2. 数据库附加 1. 数据库分离 当SQL Server服务器运行时,该服务器上所有的数据库自动处于运行状态,而运行中的数据库文件是无法进行数据库文件的拷贝的. ...

  2. 合肥工业大学—SQL Server数据库实验十:用户及其权限管理

    用户及其权限管理 1. 创建登录名Mylog及密码 2. 创建用户user2关联登录名 3. 创建角色role1 4. 对用户user2及角色role1授权 5. 验证用户授权 6. 收回用户权限 1 ...

  3. 合肥工业大学—SQL Server数据库实验五:创建和删除索引

    创建和删除索引 1. 用SQL语句建立索引 2. 用SQL语句删除索引Stuspno 1. 用SQL语句建立索引 (1)应用场景:在教务管理系统中,经常需要通过学生的姓名查询学生的基本信息,学生人数大 ...

  4. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表

    SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...

  5. 合肥工业大学—SQL Server数据库实验八:使用聚集函数的SELECT语句

    在数据库EDUC中用SQL语句实现如下查询: 1) 查询学生的总人数 -- 查询学生的总人数 select count(*) from student select count(1) from stu ...

  6. 合肥工业大学—SQL Server数据库实验二:数据库架构的创建与使用

    数据库架构的创建与使用 1. 创建架构MySch 2. 创建一个登录名log1 3. 创建用户user1,关联登录名与架构 4. 创建架构Schema1,授予用户user1 5. 在当前架构DBO(默 ...

  7. 合肥工业大学—SQL Server数据库实验一:数据库的创建和删除

    数据库的创建和删除 1. 创建数据库EDUC 2. 创建数据库TestDB 3. 删除数据库TestDB 4. 设置当前数据库为EDUC 1. 创建数据库EDUC 数据库名称:EDUC 数据库存储路径 ...

  8. 合肥工业大学—SQL Server数据库实验七:数据查询

    数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...

  9. 合肥工业大学—SQL Server数据库实验六:数据更新操作

    数据更新操作 1. 数据插入 2. 数据修改 3. 数据删除 1. 数据插入 依次将准备好的数据用Insert Into语句将数据插入相应的基本表: 正确数据的插入,这些数据应该不会违反完整性约束 注 ...

最新文章

  1. 软件包管理(rpmyum)
  2. python在线投票系统 统计票数_分层分平台,让每个学生享受教育公平 ——冯敬益老师的Python编程教学探索...
  3. Ie6下asp.net 中treeview自动随鼠标变小的修复
  4. shutil模块,为什么说它是os模块的兄弟模块?
  5. java 什么时候依赖注入_玩框架java依赖注入 – 何时使用单例
  6. .net Reactor之exe、dll文件混淆
  7. 信用评分系统运行原理上篇
  8. 阿里妈妈大规模在线分层实验实践
  9. 插入附件 文件名显示不全_批量插入、提取图片,这几招要会掌握
  10. iweboffice2015库文件WebOffice.js中新增删除两个书签之间的内容实现
  11. APP专项测试——弱网测试
  12. 【JS基础】JavaScript语言简介及简单例子
  13. Java大数据-Hadoop-HDFS的读数据流程(原理)
  14. 小米平板2可以装鸿蒙系统,搞定LOL?Win10版小米平板2游戏性能实测
  15. 如何进入bios设置U盘启动的教程,如何在bios设置u盘启动项
  16. 99% 的程序员想不到的一个技巧,绝对让领导眼前一亮,好感倍增!
  17. 字节跳动三场技术面+HR面,掌握这些知识点再也不怕面试通不过!
  18. 硬件:Nand Flash、Nor Flash
  19. 【个人记录 | 研二预答辩】
  20. 58字体加密解决思路

热门文章

  1. 2022-2028年中国PVC糊树脂行业市场深度分析及市场规模预测报告
  2. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
  3. Python3 reversed 函数
  4. ARM CPU自动调度神经网络
  5. NVIDIA CUDA-X AI
  6. mysql error number 1130,[转]mysql error number 1130的解决方法
  7. Python 赋值运算符
  8. python 集合的使用
  9. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  10. android 调用裁切板