- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章数据库查询和视图解析
4.3.3 查询视图 再对XS_KC_AVG视图进行查询。执行结果如图所示。 SELECT * FROM XS_KC_AVG WHERE score_avg = 80 4.3.4 更新视图 1.可更新视图 (1)满足以下条件的视图。 创建视图的SELECT语句中没有聚合函数,且没有GROUP BY、HAVING、UNION子句及DISTINCT关键字。 创建视图的SELECT语句中包含所有非空列。 创建视图的SELECT语句的FROM子句中至少要包含一个基本表。 (2)在对视图进行修改(包括UPDATE、INSERT 、DELETE)时只能影响到一个基表,不能同时影响多个基表(如果有多个基表的话)。 4.3.4 更新视图 2.插入数据 【例4.64】 向CS_XS视图中插入以下记录: (081115, 刘明仪, 1, 1998-3-2, 计算机, 50 , NULL) INSERT INTO CS_XS VALUES(081115, 刘明仪, 1,1998-3-2, 计算机,50,NULL) 使用SELECT语句查询CS_XS依据的基本表XSB: SELECT * FROM XSB 4.3.4 更新视图 3.修改数据 【例4.65】 将CS_XS视图中所有学生的总学分增加8。 UPDATE CS_XS SET 总学分=总学分+ 8 【例4.66】 将CS_KC视图中学号为081101的学生的101号课程成绩改为90。 UPDATE CS_KC SET 成绩=90 WHERE 学号=081101 AND 课程号=101 本例中,视图CS_KC依赖于两个基本表:XSB和CJB,对CS_KC视图的一次修改只能改变学号(源于XSB表)或者课程号和成绩(源于CJB表)。以下修改是错误的: UPDATE CS_KC SET 学号=081120, 课程号=208 WHERE 成绩=90 4.3.4 更新视图 4.删除数据 【例4.67】 删除CS_XS中女同学的记录。 DELETE FROM CS_XS WHERE 性别 = 0 【例4.68】 在对象资源管理器中对视图CS_XS进行如下操作: (1)增加一条记录(081115, 刘明仪, 1, 1998-3-2, 计算机, 50 , NULL)。 (2)将学号为081115的学生的总学分改为55。 (3)删除学号为081115的学生记录。 4.3.5 修改视图的定义 1.通过SQL Server Enterprise Manager修改视图 在对象资源管理器中右击视图“dbo.CS_XS”,在弹出的快捷菜单中选择“设计”菜单项,进入视图修改窗口。该窗口与创建视图的窗口类似,其中可以查看并可修改视图结构,修改完后单击“保存”图标即可。 2.使用ALTER VIEW语句修改视图 4.3.5 修改视图的定义 【例4.69】 将CS_XS视图修改为只包含计算机专业学生的学号、姓名和总学分。 USE PXSCJ GO ALTER VIEW CS_XS AS SELECT 学号, 姓名, 总学分 FROM dbo.XSB WHERE 专业= 计算机 4.3.5 修改视图的定义 【例4.70】 对视图CS_KC修改其定义,包括学号、姓名、选修的课程号、课程名和成绩。 ALTER VIEW CS_KC AS SELECT XSB.学号,XSB.姓名,CJB.课程号,KCB.课程名,成绩 FROM XSB, CJB, KCB WHERE XSB.学号 = CJB.学号 AND CJB.课程号 = KCB.课程号 AND 专业= 计算机 4.3.6 删除视图 1.通过对象资源管理器删除视图 在对象资源管理器中删除视图的操作方法是: 在“视图”目录下选择需要删除的视图,右击鼠标,在弹出的快捷菜单上选择“删除”菜单项,出现“删除”对话框,单击“确定”按钮,即删除了指定的视图。 2.T-SQL命令方式删除视图 使用DROP VIEW可删除一个或多个视图。例如, DROP VIEW CS_XS, CS_KC * 4.2.6 ORDER BY子句 在应用中经常要对查询的结果排序输出,如将学生成绩由高到低排序。在SELECT语句中,使用ORDER BY子句对查询结果进行排序。 【例4.35】 将通信工程专业的学生按出生时间先后顺序排序。 SELECT * FROM XSB WHERE 专业= 通信工程 ORDER BY 出生时间 4.2.6 ORDER BY子句 【例4.36】 将成绩表按学号升序排列输出,在学号相同的情况下按课程号的
文档评论(0)