数据库视图查看操作3.ppt_第1页
数据库视图查看操作3.ppt_第2页
数据库视图查看操作3.ppt_第3页
数据库视图查看操作3.ppt_第4页
数据库视图查看操作3.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

创建和管理视图,2,目录,视图概念 创建视图 视图的应用 修改与删除视图,3,什么是视图,思考: 对于学生信息表和学生成绩表,教师和辅导员所需要的信息不同 教师:姓名、学号、cSharp成绩、SQL成绩、平均分 辅导员:姓名、学号、性别,年龄、家庭住址等 解决方法: 视图,4,什么是视图,视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 同一张原始表,根据不同用户的不同需求,可以创建不同的视图 一个视图可以派生于一个或多个基表,也可以从其它视图中派生,5,什么是视图,视图的用途 筛选表中的行 防止未经许可的用户访问敏感数据 降低数据库的复杂程度 将多个物理数据库抽象为一个逻辑数据库,6,如何创建视图,使用T-SQL语句创建视图的语法 Column:视图中的列名 With encryption:视图将被加密 Select_statement:查询语句 With check option:让update和insert语句严格按照视图中定义的格式 注:一个视图能参照的最大列数为1024,CREATE VIEW view_name(column,n) with encryption As select_statement with check option,7,创建视图- (例1),基于stuInfo表创建一个视图 CREATE VIEW view_assistant AS SELECT stuInfo.stuNo,stuInfo.stuName,stuInfo.stuAge,stuInfo.stuSex,stuInfo.stuAddress FROM stuInfo GO,8,创建视图- (例2),创建视图,使用不同于基表的列名 CREATE VIEW view_ass (学号,姓名,性别,年龄,住址) AS SELECT stuNo,stuName,stuAge,stuSex,stuAddress FROM stuInfo GO,9,创建视图- (例3),基于stuInfo和stuMarks两个表创建视图,查询学号,姓名,性别,c#成绩,SQL成绩,平均成绩)。 CREATE VIEW view_twotable (学号,姓名,性别,c#成绩,SQL成绩,平均成绩) AS SELECT stuInfo.stuNo,stuName,stuSex,cSharpExam,SQLExam,(cSharpExam+SQLExam)/2 FROM stuInfo,stuMarks WHERE stuInfo.stuNo=stuMarks.stuNo GO,10,创建视图- (例4),练习:创建视图,查看学号,姓名,c#成绩,SQL成绩,平均成绩且平均成绩高于80分的同学。,11,创建视图- (例5),使用函数创建视图,查看stuInfo表中男生和女生分别的人数,并将视图加密 CREATE VIEW view_numOfSex WITH ENCRYPTION AS SELECT stuSex,COUNT(stuSex) AS 人数 FROM stuInfo GROUP BY stuSex GO,给视图加密可以防止其他用户查看最初的视图产生代码。这是软件开发人员隐藏视图或其他数据对象的源代码的有效方法,12,视图的应用 -查看视图的定义,使用with encryption选项的视图不能查看 SP_HELPTEXT view_twotable GO SP_HELPTEXT view_numOfSex GO,13,视图的应用 -使用create view的几点注意,要求对基表有select权限 不能在视图上建立规则、默认和触发器,或构造索引 一个视图只能参照1024列 不能创建临时视图,也不能以临时表为基表建立视图 由于不能以临时表为基表建立视图,而select into语句需要建立临时表,所以在create view语句中不能使用select into,14,视图的应用-视图的使用,通过视图检索数据 可以通过任何查询方式检索视图 建立视图时,系统不检查参照对象的存在,检索视图时不存在的对象将导致错误 使用select * 建立的视图在基表增加新列后,不能检索新列,及表删除某列后检索将不能进行 通过视图修改数据 实际是对基表的数据进行修改,所以必须遵守基表的数据完整性约束 一个语句只能修改视图的一个基表 不允许对group by定义的视图或视图的计算列进行修改,15,视图的应用,通过视图插入数据 insert into view_ass values(G21120,李鹏,23,女,山东济南) 需要特别注意对于基表的数据完整性检查 对插入的数据进行修改 UPDATE View_teacher SET c#成绩=60 WHERE 姓名=张明,16,修改与删除视图,修改视图的结构与创建一致 语法:ALTER VIEW view_name AS select_statement 示例:修改View_teacher ALTER VIEW view_teacher (学号,姓名,c#成绩,SQL成绩,总成绩) AS SELECT stuInfo.stuNo,stuName,cSharpExam,SQLExam,cSharpExam+SQLExam FROM stuInfo,stuMarks WHERE stuInfo.stuNo=stuMarks.stuNo GO,17,修改与删除视图 -删除视图,语法:DROP VIEW view_name 示例: DROP VIEW view_teacher,18,总结,视图概念 创建视图 视图的应用 修改与删除视图,19,总结,视图是虚拟表,它从一个或多个称为基表或内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论