版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
17.1创建视图视图(View)通过SELECT查询语句定义,它是从一个或多个表(或视图)导出的,用来导出视图的表称为基表(BaseTable),导出的视图称为虚表。在数据库中,只存储视图的定义,不存放视图对应的数据,这些数据仍然存放在原来的基表中。视图可以由一个基表中选取的某些行和列组成,也可以由多个表中满足一定条件的数据组成,视图就像是基表的窗口,它反映了一个或多个基表的局部数据。视图有以下优点:●
方便用户的查询和处理,简化数据操作。●简化用户的权限管理,增加安全性。●
便于数据共享。●
屏蔽数据库的复杂性。●
可以重新组织数据。
Oracle数据库教程(第2版)27.1创建视图7.1.1使用PL/SQL语句创建视图PL/SQL语句创建视图的语句是CREATEORREPLACEVIEW语句。语法格式:CREATEVIEW[schema_name.]view_name[(column[,...n])][WITH<view_attribute>[,…n]]ASselect_statement[WITHCHECKOPTION]说明:
●view_name:视图名称;scheme是数据库架构名
●
column:列名,此为视图中包含的列,最多可引用1024个列。
●
WITH子句:指出视图的属性
Oracle数据库教程(第2版)37.1创建视图
●select_statement:定义视图的SELECT语句,可在该语句中使用多个表或视图。●
WITHCHECKOPTION:指出在视图上进行的修改都要符合select_statement所指定的准则。【例7.1】使用CREATEVIEW语句,在stsys数据库中创建vwStudentScore视图,包括学号、姓名、性别、专业、课程号、成绩,且专业为计算机。CREATEORREPLACEVIEWvwStudentScoreASSELECTa.sno,a.sname,a.ssex,a.speciality,o,b.gradeFROMstudenta,scorebWHEREa.sno=b.snoANDa.speciality='计算机'WITHCHECKOPTION;
Oracle数据库教程(第2版)47.1创建视图7.1.2
使用图形界面方式创建视图【例7.2】使用图形界面方式,在stsys数据库中创建vwStudentCourseScore视图,包括学号、姓名、性别、课程名、成绩,按学号升序排列,且专业为计算机。(1)启动”SQLDeveloper”,在”连接”节点下打开数据库连接”sys_stsys”,右单击“视图”节点,在弹出的快捷菜单中选择”新建视图”命令,屏幕出现“创建视图”窗口,在“名称”框中,输入vwStudentCourseScore,在“SQL查询”选项卡中,输入如下的SQL查询语句:SELECTa.sno,a.sname,a.ssex,a.speciality,ame,c.gradeFROMstudenta,courseb,scorecWHEREa.sno=c.snoANDo=oANDa.speciality='计算机'ORDERBYa.sno
Oracle数据库教程(第2版)57.1创建视图输入SQL查询语句后的“创建视图”窗口如图7.1所示。(2)单击“确定”按钮,完成视图vwStudentCourseScore的创建。
Oracle数据库教程(第2版)67.2查询视图【例7.3】分别查询vwStudentScore视图、vwStudentCourseScore视图。
SNOSNAMESSEXSPECIALITYCNOGRADE--------------------------------------------------------------181001宋德成男计算机1004
94181002何静女计算机
100486181004刘文韬男计算机100490181001宋德成男计算机8001
91181002何静女计算机8001
87181004刘文韬男计算机800185181001宋德成男计算机120193181002何静女计算机
120176181004刘文韬男计算机120192Oracle数据库教程(第2版)使用SELECT语句对vwStudentScore视图进行查询:SELECT*FROMvwStudentScore;查询结果:77.2查询视图
SNOSNAMESSEXSPECIALITYCNAMEGRADE--------------------------------------------------------------181001宋德成男计算机高等数学
91181001宋德成男计算机数据库系统94181001宋德成男计算机英语93181002何静女计算机数据库系统86181002何静女计算机高等数学
87181002何静女计算机英语76181004刘文韬男计算机数据库系统90181004刘文韬男计算机高等数学85181004刘文韬男计算机英语92Oracle数据库教程(第2版)使用SELECT语句对svwStudentCourseScore视图进行查询:SELECT*FROMvwStudentCourseScore;查询结果:87.2查询视图【例7.4】查询计算机专业学生的学号、姓名、性别、课程名。SELECTsno,sname,ssex,cname
FROMvwStudentCourseScore;查询结果:
SNO
SNAMESSEXCNAME-------------------------------------------181001宋德成男数据库系统181001宋德成男高等数学181001宋德成男英语181002何静女数据库系统181002何静
女高等数学181002何静女英语181004刘文韬男数据库系统181004刘文韬男高等数学181004刘文韬男英语Oracle数据库教程(第2版)Oracle数据库教程(第2版)97.3修改视图定义
7.3.1使用PL/SQL语句修改视图定义【例7.5】将例7.1定义的视图vwStudentScore视图进行修改,取消专业为计算机的要求。CREATEORREPLACEVIEWvwStudentScoreASSELECTa.sno,a.sname,a.ssex,a.speciality,o,b.gradeFROMstudenta,scorebWHEREa.sno=b.snoWITHCHECKOPTION;使用SELECT语句对修改后的vwStudentScore视图进行查询,可看出修改后的vwStudentScore视图已取消专业为计算机的要求。SELECT*FROMvwStudentScore;Oracle数据库教程(第2版)107.3修改视图定义
SNOSNAMESSEXSPECIALITYCNO
GRADE-----------------------------------------------------------------181001宋德成男计算机100494181002何静女计算机100486181004刘文韬男计算机100490184001李浩宇男通信400292184002谢丽君女通信400278184003陈春玉女通信400289181001宋德成男计算机800191181002何静女计算机800187181004刘文韬男计算机800185184001李浩宇男通信800186184002谢丽君女通信8001184003陈春玉女通信800195181001宋德成男计算机120193181002何静女计算机120176181004刘文韬男计算机120192184001李浩宇男通信120182184002谢丽君女通信120175184003陈春玉女通信120191Oracle数据库教程(第2版)117.3修改视图定义7.3.2使用图形界面方式修改视图定义
【例7.6】使用图形界面方式修改例7.2创建的视图vwStudentCourseScore,以降序显示学分。(1)启动SQLDeveloper,展开“sys_stsys”连接,展开“视图”,选择vwStudentCourseScoret,单击鼠标右键,在弹出的快捷菜单中选择“编辑”命令,进入“编辑视图”窗口,可以修改视图定义,其操和创建视图类似,如图7.2所示。Oracle数据库教程(第2版)127.3修改视图定义
(2)在图7.2的“SQL查询”选项卡中,将SQL查询语句修改为:SELECTa.sno,a.sname,a.ssex,a.speciality,ame,c.gradeFROMstudenta,courseb,scorecWHEREa.sno=c.snoANDo=oANDa.speciality='计算机'ORDERBYa.snoDESC(3)单击“确定”按钮,完成vwStudentCourseScore视图定义的修改。(4)使用SELECT语句查询vwStudentCourseScore。SELECT*FROMvwStudentCourseScore;Oracle数据库教程(第2版)137.3修改视图定义
查询结果:SNOSNAMESSEXSPECIALITYCNAMEGRADE------------------------------------------------------------------------181004刘文韬男计算机英语92181004刘文韬男计算机高等数学85181004刘文韬男计算机数据库系统90181002何静女计算机数据库系统86181002何静女计算机高等数学87181002何静女计算机英语76181001宋德成男计算机英语93181001宋德成男计算机数据库系统94181001宋德成男计算机高等数学
91Oracle数据库教程(第2版)147.4删除视图7.4.1使用PL/SQL语句删除视图使用PL/SQL的DROPVIEW语句删除视图,语法格式:DROPVIEW<视图名>【例7.7】将视图vwStudentCourseScore删除。DROPVIEWvwStudentCourseScore;
Oracle数据库教程(第2版)157.4删除视图7.4.2使用图形界面方式删除视图【例7.8】删除视图vwStudentScore。启动SQLDeveloper,展开“sys_stsys”连接,展开“视图”,选择需要删除的视图,这里,选择vwStudentScore,单击鼠标右键,在弹出的快捷菜单中选择“删除”命令,在弹出的“删除”窗口中单击“应用”按钮即可。
Oracle数据库教程(第2版)167.5更新视图7.5.1可更新视图【例7.9】在stsys数据库中,以student为基表,创建专业为通信的可更新视图vwCommSpecialityStudent。创建视图vwCommSpecialityStudent语句如下:CREATEORREPLACEVIEWvwCommSpecialityStudentASSELECT*FROMstudentWHEREspeciality='通信';
Oracle数据库教程(第2版)177.3
更新视图使用SELECT语句查询vwCommSpecialityStudent视图SELECT*FROMvwCommSpecialityStudent查询结果:SNOSNAMESSEXSBIRTHDAYSPECIALITYSCLASSTC---------------------------------------------------------------------------------184001李浩宇男1997-10-24
通信
20183650184002谢丽君女1998-01-16通信20183648184003陈春玉女1997-08-09通信20183652
Oracle数据库教程(第2版)187.5更新视图7.5.2插入数据使用INSERT语句通过视图向基表插入数据。【例7.10】向vwCommSpecialityStudent视图中插入一条记录:('184006','吴维明','男','1998-03-14','通信','201836',50)。INSERTINTOvwCommSpecialityStudentVALUES('184006','吴维明','男','1998-03-14','通信','201836',50);使用SELECT语句查询vwCommSpecialityStudent视图的基表studentSELECT*FROMstudent;
Oracle数据库教程(第2版)197.5更新视图
上述语句对基表student进行查询,该表已添加记录('184006','吴维明','男','1998-03-14','通信','201836',50)。
查询结果:
SNOSNAMESSEXSBIRTHDAYSPECIALITYSCLASSTC------------------------------------------------------------------------------181001宋德成
男
1997-11-05计算机
20180552181002何静
女
1998-04-27计算机
20180550181004刘文韬
男
1998-05-13计算机
20180552184001李浩宇
男
1997-10-24通信
20183650
184002谢丽君
女
1998-01-16通信
20183648184003陈春玉
女
1997-08-09通信
20183652184006吴维明
男
1998-03-14通信
20183650Oracle数据库教程(第2版)207.5
更新视图7.5.3修改数据使用UPDATE语句通过视图修改基表数据。【例7.11】将vwCommSpecialityStudent视图中学号为184006的学生的总学分增加2分。UPDATEvwCommSpecialityStudentSETtc=tc+2WHEREsno='184006';使用SELECT语句查询vwCommSpecialityStudent视图的基表studentSELECT*FROMstudent;
Oracle数据库教程(第2版)217.5
更新视图上述语句对基表student进行查询,该表已将学号为184006的学生的总学分增加了2分。查询结果:SNOSNAMESSEXSBIRTHDAYSPECIALITYSCLASSTC------------------------------------------------------------------------------181001宋德成男1997-11-05计算机20180552181002何静女1998-04-27计算机20180550181004刘文韬男1998-05-13计算机20180552184001李浩宇男1997-10-24通信20183650184002谢丽君女1998-01-16通信20183648184003陈春玉女
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏减排碳抵消项目开发合同2025
- 管理2025年养老机构运营合同协议
- 健康环保责任执行保证承诺书5篇
- 校园里的友谊故事写事的记叙文(6篇)
- 我的自然观察日记树叶的旅行9篇
- 梦想的力量议论文阐述(10篇)
- 农业生产安全承诺书(8篇)
- 人才引进合作协议书保证承诺书6篇
- 秋日乡村的傍晚写景类作文(9篇)
- 贵州省黔西南布依族苗族自治州2024-2025学年四年级上册期末考试数学试卷(含答案)
- 激光熔覆应用介绍
- 电除颤临床操作规范指南样本
- 教学《近似数》数学课件教案
- 2025年西昌市邛海泸山风景名胜区管理局招聘5名执法协勤人员备考题库完整参考答案详解
- 2025年中共湛江市委巡察服务保障中心、湛江市清风苑管理中心公开招聘事业编制工作人员8人备考题库完整参考答案详解
- 2025年产业融合发展与区域经济一体化进程研究可行性研究报告
- 医保科工作流程管理标准化方案
- 2025呼伦贝尔莫旗消防救援大队招聘消防文员(公共基础知识)综合能力测试题附答案解析
- 《国家赔偿法》期末终结性考试(占总成绩50%)-国开(ZJ)-参考资料
- 社会能力训练教程
- 广东省广州市番禺区2024-2025学年七年级上学期语文期末考试试卷(含答案)
评论
0/150
提交评论