- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2.1 视图概念 使用视图时,要注意下列事项: (1) 只有在当前数据库中才能创建视图。视图的命名必须遵循标识符命名规则,不能与表同名,且对每个用户视图名必须是唯一的,即对不同用户,即使是定义相同的视图,也必须使用不同的名字。 (2) 不能把规则、默认值或触发器与视图相关联。 (3) 不能在视图上建立任何索引,包括全文索引 视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。 视图是从一个或多个表(或视图)导出的表。视图是数据库的用户使用数据库的观点。 4.2.2 创建视图 3. 使用CREATE VIEW语句创建视图 T-SQL中用于创建视图的语句是CREATE VIEW语句,例如用该语句创建视图CS_XS,其表示形式为: USE XSCJ GO CREATE VIEW CS_XS AS SELECT * FROM XS WHERE 专业名 = 计算机 GO ? 语法格式: CREATE VIEW [ database_name. ][ owner. ] view_name [ ( column_name [ ,…n ] ) ] [ WITH view_attribute[ ,…n ] ] AS select_statement [ WITH CHECK OPTION ] 4.2.2 创建视图 【例4.51】创建CS_KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩。要保证对该视图的修改都要符合专业名为计算机这个条件。 CREATE VIEW CS_KC WITH ENCRYPTION AS SELECT XS.学号,课程号,成绩 FROM XS,XS_KC WHERE XS.学号 = XS_KC.学号 AND 专业名 = 计算机 WITH CHECK OPTION 【例4.52】创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)。 CREATE VIEW CS_KC_AVG(num,score_avg) AS SELECT 学号,AVG(成绩) FROM CS_KC GROUP BY 学号 4.2.3 查询视图 【例4.53】使用视图CS_KC查找计算机专业的学生学号和选修的课程号。 SELECT 学号,课程号 FROM CS_KC 【例4.54】查找平均成绩在80分以上的学生的学号和平均成绩。 本例首先创建学生平均成绩视图XS_KC_AVG,包括学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)。 CREATE VIEW XS_KC_AVG ( num,score_avg ) AS SELECT 学号,AVG(成绩) FROM XS_KC GROUP BY 学号 再对XS_KC_AVG视图进行查询。 SELECT * FROM XS_KC_AVG WHERE score_avg=80 4.2.4 更新视图 1. 可更新视图 要通过视图更新基本表数据,必须保证视图是可更新视图。一个可更新视图可以是以下情形之一: 满足以下条件的视图:创建视图的SELECT语句中没有聚合函数,且没有TOP、GROUP BY、UNION子句及DISTINCT关键字;创建视图的SELECT语句中不包含从基本表列通过计算所得的列;创建视图的SELECT语句的FROM子句中至少要包含一个基本表。 前面创建的视图CS_XS、CS_KC是可更新视图,而CS_KC_AVG是不可更新的视图。 4.2.4 更新视图 2. 插入数据 【例4.56】向CS_XS视图中插入一条记录: ( ‘001115’ , ‘刘明仪’, ‘计算机’, 1,‘1978-3-2’, 50 , NULL ) INSERT INTO CS_XS VALUES(001115, 刘明仪,计算机,1,1978-3-2,50,NULL,NULL) 使用SELECT语句查询CS_XS依据的基本表XS: SELECT * FROM XS 将会看到该表已添加了(001115, 刘明仪,计算机,1,1978-3-2,50,NULL,NULL )行。 4.2.4 更新视图 3. 修改数据 【例4.58】将CS_XS视图中所有学生的总学分增加8。 UPDA
文档评论(0)