资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Sql-Server-Sql-Server-学习讲义学习讲义- -课件课件-9-PPT-9-PPT-视图视图目录目录v 视图概念v 创建视图v 视图的应用v 修改与删除视图2什么是视图什么是视图v思考:对于学生信息表和学生成绩表,教师和辅导员所需要的信息不同教师:姓名、学号、cSharp成绩、SQL成绩、平均分辅导员:姓名、学号、性别,年龄、家庭住址等v解决方法:视图3什么是视图什么是视图v视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上v视图中并不存放数据,而是存放在视图所引用的原始表(基表)中v同一张原始表,根据不同用户的不同需求,可以创建不同的视图v 一个视图可以派生于一个或多个基表,也可以从其它视图中派生4什么是视图什么是视图v视图的用途筛选表中的行防止未经许可的用户访问敏感数据降低数据库的复杂程度将多个物理数据库抽象为一个逻辑数据库5如何创建视图如何创建视图v使用T-SQL语句创建视图的语法vColumn:视图中的列名vWith encryption:视图将被加密vSelect_statement:查询语句vWith check option:让update和insert语句严格按照视图中定义的格式v注:一个视图能参照的最大列数为1024CREATE VIEW view_name(column,.n) with encryptionAs select_statementwith check option6创建视图- ( (例例1)1)v 基于stuInfo表创建一个视图 CREATE VIEW view_assistantAS SELECT stuInfo.stuNo,stuInfo.stuName,stuInfo.stuAge,stuInfo.stuSex,stuInfo.stuAddressFROM stuInfoGO7创建视图- ( (例例2)2)v 创建视图,使用不同于基表的列名CREATE VIEW view_ass(学号,姓名,性别,年龄,住址)ASSELECT stuNo,stuName,stuAge,stuSex,stuAddressFROM stuInfoGO8创建视图- ( (例例3)3)v 基于stuInfo和stuMarks两个表创建视图,查询学号,姓名,性别,c#成绩,SQL成绩,平均成绩)。CREATE VIEW view_twotable(学号,姓名,性别,c#成绩,SQL成绩,平均成绩)ASSELECT stuInfo.stuNo,stuName,stuSex,cSharpExam,SQLExam,(cSharpExam+SQLExam)/2FROM stuInfo,stuMarksWHERE stuInfo.stuNo=stuMarks.stuNoGO9创建视图- ( (例例4)4)v 练习:创建视图,查看学号,姓名,c#成绩,SQL成绩,平均成绩且平均成绩高于80分的同学。10创建视图- ( (例例5)5)v 使用函数创建视图,查看stuInfo表中男生和女生分别的人数,并将视图加密CREATE VIEW view_numOfSexWITH ENCRYPTIONASSELECT stuSex,COUNT(stuSex) AS 人数FROM stuInfoGROUP BY stuSexGO 给视图加密可以防止其他用户查看最初的视图产生代码。这是软给视图加密可以防止其他用户查看最初的视图产生代码。这是软件开发人员隐藏视图或其他数据对象的源代码的有效方法件开发人员隐藏视图或其他数据对象的源代码的有效方法11视图的应用 -查看视图的定义查看视图的定义v 使用with encryption选项的视图不能查看v SP_HELPTEXT view_twotable GOv SP_HELPTEXT view_numOfSex GO12视图的应用 -使用使用create view的几点注意的几点注意v 要求对基表有select权限v 不能在视图上建立规则、默认和触发器,或构造索引v 一个视图只能参照1024列v 不能创建临时视图,也不能以临时表为基表建立视图v 由于不能以临时表为基表建立视图,而select into语句需要建立临时表,所以在create view语句中不能使用select into13视图的应用-视图的使用视图的使用v 通过视图检索数据可以通过任何查询方式检索视图建立视图时,系统不检查参照对象的存在,检索视图时不存在的对象将导致错误使用select * 建立的视图在基表增加新列后,不能检索新列,及表删除某列后检索将不能进行v 通过视图修改数据实际是对基表的数据进行修改,所以必须遵守基表的数据完整性约束一个语句只能修改视图的一个基表不允许对group by定义的视图或视图的计算列进行修改14视图的应用v 通过视图插入数据insert into view_assvalues(G21120,李鹏,23,女,山东济南) 需要特别注意对于基表的数据完整性检查v 对插入的数据进行修改UPDATE View_teacherSET c#成绩=60WHERE 姓名=张明15修改与删除视图v 修改视图的结构与创建一致v语法:ALTER VIEW view_name AS select_statementv示例:修改View_teacher ALTER VIEW view_teacher(学号,姓名,c#成绩,SQL成绩,总成绩)ASSELECT stuInfo.stuNo,stuName,cSharpExam,SQLExam,cSharpExam+SQLExamFROM stuInfo,stuMarksWHERE stuInfo.stuNo=stuMarks.stuNoGO16修改与删除视图 -删除视图删除视图v 语法:DROP VIEW view_namev示例:DROP VIEW view_teacher17总结总结v视图概念v创建视图v视图的应用v修改与删除视图18总结总结视图是虚拟表,它从一个或多个称为基表或内含表的表中产生数据。视图作为安全机制,而保护基表中的数据。视图屏蔽了系统内部表的复杂性.19作业及练习作业及练习v练习: 建立一个视图v 要求: 可以通过本视图直接查询输出员工号,经理号,员工职务,员工所在部门名称v (使用adventureWorks数据库)20结束结束
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号