- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
创建和管理视图 目录 视图概念 创建视图 视图的应用 修改与删除视图 什么是视图 思考: 对于学生信息表和学生成绩表,教师和辅导员所需要的信息不同 教师:姓名、学号、cSharp成绩、SQL成绩、平均分 辅导员:姓名、学号、性别,年龄、家庭住址等 解决方法: 视图 什么是视图 视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 同一张原始表,根据不同用户的不同需求,可以创建不同的视图 一个视图可以派生于一个或多个基表,也可以从其它视图中派生 什么是视图 视图的用途 筛选表中的行 防止未经许可的用户访问敏感数据 降低数据库的复杂程度 将多个物理数据库抽象为一个逻辑数据库 如何创建视图 使用T-SQL语句创建视图的语法 Column:视图中的列名 With encryption:视图将被加密 Select_statement:查询语句 With check option:让update和insert语句严格按照视图中定义的格式 注:一个视图能参照的最大列数为1024 创建视图- (例1) 基于stuInfo表创建一个视图 CREATE VIEW view_assistant AS SELECT stuInfo.stuNo,stuInfo.stuName,stuInfo.stuAge,stuInfo.stuSex,stuInfo.stuAddress FROM stuInfo GO 创建视图- (例2) 创建视图,使用不同于基表的列名 CREATE VIEW view_ass (学号,姓名,性别,年龄,住址) AS SELECT stuNo,stuName,stuAge,stuSex,stuAddress FROM stuInfo GO 创建视图- (例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 创建视图- (例4) 练习:创建视图,查看学号,姓名,c#成绩,SQL成绩,平均成绩且平均成绩高于80分的同学。 创建视图- (例5) 使用函数创建视图,查看stuInfo表中男生和女生分别的人数,并将视图加密 CREATE VIEW view_numOfSex WITH ENCRYPTION AS SELECT stuSex,COUNT(stuSex) AS 人数 FROM stuInfo GROUP BY stuSex GO 视图的应用 -查看视图的定义 使用with encryption选项的视图不能查看 SP_HELPTEXT view_twotable GO SP_HELPTEXT view_numOfSex GO 视图的应用 -使用create view的几点注意 要求对基表有select权限 不能在视图上建立规则、默认和触发器,或构造索引 一个视图只能参照1024列 不能创建临时视图,也不能以临时表为基表建立视图 由于不能以临时表为基表建立视图,而select into语句需要建立临时表,所以在create view语句中不能使用select into 视图的应用-视图的使用 通过视图检索数据 可以通过任何查询方式检索视图 建立视图时,系统不检查参照对象的存在,检索视图时不存在的对象将导致错误 使用select * 建立的视图在基表增加新列后,不能检索新列,及表删除某列后检索将不能进行 通过视图修改数据 实际是对基表的数据进行修改,所以必须遵守基表的数据完整性约束 一个语句只能修改视图的一个基表 不允许对group by定义的视图或视图的计算列进行修改 视图的应用 通过视图插入数据 insert into view_ass values(G21120,李鹏,23,女,山东济南) [需要特别注意对于基表的数据完整性检查] 对插入的数据进行修改 UPDATE View_teacher SET c#成绩=60 WHERE 姓名=张明 修改与删除视图 修改视图的结构与创建一致 语法:A
文档评论(0)