- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 视图;8.1.1 视图及其作用; 查询和视图虽然很相似,但还是有很多的区别。两者的主要区别如下:;8.1.2 视图类型;8.2 创建视图;但是在如下情况下必须指定列名:;8.2.1 使用SQL Server管理控制器创建视图;选中“视图”节点,单击鼠标右键,在出现的快捷菜单中选择“新建视图”命令,如图8.1所示。;此时,打开“添加表”对话框,如图8.2所示。在此对话框中,可以选择表、视图或者函数等,然后单击“添加”按钮,就可将其添加到视图的查询中。这里分别选择student、course和score三个表,并单击“添加”按钮,最后单击“关闭”按钮。;返回到SQL Server管理控制器,如图8.3所示,这三个表已在第4章建立了关联关系,在图中反映这种关系(如果已删除了表之间的关联关系,可以手工建立图8.3中表之间的关联关系)。;在网格窗格中为该视图选择要包含的列。选择的第一列为student.学号,从“列”组合框中选择,不指定其别名,不设置筛选器值等,再将其“排序类型”设置为“升序”,如图8.4所示;并依次选择第2列为course.课程名,第3列为score.分数,如图8.5所示。; 选择列后,单击工具栏上的 按钮,然后在弹出的对话框中输入视图的名称,这里输入st_score。出现如图8.6所示的警告消息,忽略它,单击“确定”按钮保存。;在设计好视图st_score后,可以单击工具栏的“!”按钮来执行,其结果显示在SQL Server管理控制器的结果窗格中,如图8.7所示。;使用CREATE VIEW语句创建视图的语法为:; 【例8.2】给出一个程序,创建一个名称为st1_score的视图,其中包括所有学生的姓名、课程和成绩。;8.3 使用视图; 【例8.3】使用SQL Server管理控制器来查询st1_score视图数据。;选中“st1_score”视图,单击鼠标右键,在出现的快捷菜单中选择“选择前1000行”命令,如图8.8所示。;2. 使用SELECT语句查询视图数据
将视图看成是表,直接使用SELECT语句查询其中的数据。; 【例8.4】给出以下程序的执行结果。其中,st1_score视图是例8.2创建的。;8.3.2 可更新的视图;被修改的列不受GROUP BY、HAVING或DISTINCT子句的影响。
TOP在视图的?select语句中的任何位置都不会与WITH CHECK OPTION子句一起使用。;1. 通过视图向基表中插入数据;【例8.5】给出以下程序的执行结果。; 解:该程序在test数据库中创建一个表table4和基于该表的视图view1,表table4的col3列设置有默认值,并利用视图view1向其基表table4中插入了两个记录,最后显示基表table4中的所有行。其执行结果如图8.9所示。;2. 通过视图修改基表中数据;【例8.6】给出以下程序的执行结果。; 解:该程序先在test数据库中创建一个表table4,并插入两个记录,然后创建表table4的视图view2,并利用视图view2修改基表table4的第2个记录,最后显示基表table4中的所有行。其执行结果如图8.10所示。;3. 通过视图删除基表中的数据;【例8.7】给出以下程序的执行结果。;CREATE TABLE authors --创建表authors
( 作者编号 int NOT NULL PRIMARY KEY,
作者姓名 char(20),
作者地址 char(30)
)
CREATE TABLE book --创建表book
( 图书编号 int NOT NULL PRIMARY KEY,
书号 char(8) NOT NULL,
作者编号 int FOREIGN KEY REFERENCES authors(作者编号)
)
GO;INSERT INTO authors VALUES(1,李华,东一) --向表authors中插入2个记录
INSERT INTO authors VALUES(2,陈斌,西五)
GO
INSERT INTO book VALUES(101,C,1) --向表book中插入2个记录
INSERT INTO book VALUES(102,DS,2)
GO
-------------------------------------------------------------
CREATE VIEW view3 AS SELECT 作者编号,作者姓名 FROM authors
GO --创建视图view3
DELETE view3 WHERE 作者编号=2
GO; 解:该程序先在test数
文档评论(0)