欢迎来到天天文库
浏览记录
ID:19605829
大小:1.03 MB
页数:66页
时间:2018-10-04
《第7章 视图和索引》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章视图和索引本章要点视图概述创建、修改、删除和重命名视图使用视图更新数据创建、修改、删除和重命名索引使用索引视图概述视图并不是表,只是由查询语句所定义的一个虚拟表。其结构和数据建立在对表的查询的基础上。和表一样,视图也包括几个被定义的数据列和多个数据行,就本质而言,这些数据列和数据行来源于视图所引用的表,所以视图不是真实存在的基本表,而是一张虚表。视图中的数据并不是以视图的结构存储在数据库中,而是基本表的一个映射。视图一经定义便存储在数据库中。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定限制)和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也
2、要发生变化,同样,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。视图概述视图的应用主要是基于以下考虑(优点):视点集中,使用户只关心感兴趣的某些特定数据和他们所负责的特定任务,那些不需要或无用的数据则不必在视图中显示。简化操作。视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每次执行相同的查询时,不必重新编写这些复杂的查询语句,只要一条简短的查询视图的语句即可。定制数据。视图能实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一个数据库时,这就显得极为重要。合并分割数据。有些情况下
3、,由于表中数据量太大,故在表的设计时将表进行水平分割或者垂直分割,但表的结构的变化将对应用程序产生不良的影响。如果使用视图就可以重新保持表原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来使用和管理数据。安全性。视图可以作为一种安全机制。通过视图,用户只能查看和修改他们所能看到的数据,其他数据库和表,既不可见也不可访问。如果某一用户想要访问视图的结果集,其必须被授予访问权限。视图所引用表的访问权限与视图权限的设置互不影响。创建视图创建视图可以在SqlServer管理平台中使用可视化向导完成,也可以使用sql语句完成。使用可视化向导创建视图可以按照以下步骤完
4、成:(1)在对象资源管理器中展开视图所依赖的数据库,然后展开展开视图节点,右键单击视图节点,选择新建视图,打开添加表对话框。(2)在添加表对话框中选择视图所依赖的表。(3)关闭添加表对话框,在设计视图的窗口中选择要显示的列,并在中间显示的列信息的筛选器中输入要显示的数据所满足的条件。(4)单击工具栏中的!按钮可以显示最终出现在该视图中的内容,同时自动生成定义该视图的sql语句。(5)单击工具栏中的保存按钮,在弹出的对话框中输入视图的名字。然后单击确定按钮从而完成视图的创建。创建视图使用sql语句创建视图的基本语法:CREATEVIEW[schema_name.]view_n
5、ame[(column[,...])][WITH[,...]]ASselect_statement[WITHCHECKOPTION]创建视图基本语法::={ENCRYPTION
6、SCHEMABINDING
7、VIEW_METADATA}创建视图基本语法:参数说明ENCRYPTION对创建视图的SQL语句进行加密若不设置该参数,可以使用sp_helptext查看视图的创建语句SCHEMABINDING将视图绑定到架构(schema)上必须指定select_statement中引用表或视图的架构名,即:
8、schema_name.table_or_view_name创建视图基本语法:参数说明VIEW_METADATA当引用视图的查询请求浏览模式的元数据(METADATA)时,SQLServer将返回有关视图的元数据,而不返回基表的元数据描述性的数据创建视图基本语法WITHCHECKOPTION强制要求通过视图修改的数据记录依然满足select_statement中的条件,依然出现在视图中思考创建一个视图,其select_statement如下,能不能通过修改该视图使得:stuAge<=18SELECTstuNo,stuName,stuAgeFROMS
9、tudentWHEREstuAge>18创建视图实例分析提出问题BigCollege选课管理人员需要经常了解学生选课情况,主要包括学生学号、姓名、专业名称、所选课程名,在不创建新表的前提下,提出一种解决方案,满足管理人员的日常查询要求。创建视图实例分析分析问题管理人员需要查询的信息来源于不同的数据表,需要进行数据表连接,属于有一定复杂度的查询动作该查询属于日常行为,会频繁地进行不允许创建新表创建视图实例分析问题求解编写视图创建语句CREATEVIEWv_SelectCourseInfo(学号,学生姓名,专业,所选课
此文档下载收益归作者所有