1.视图的创建
视图是为用户观察或分析数据库中的数据提供的一种格式化的数据窗口,提供了存储预定义的查询语句作为数据库中的对象以备以后使用,使用户在对数据库数据进行处理时只看到所需要的数据,以便节省资源,方便快捷。用户可以使用向导、企业管理器或CREATE VIEW语句来创建视图。这里仅介绍通过企业管理器来建立视图的方法。
1)在企业管理器中展开服务器组,然后展开一个服务器。
2)展开“数据库”文件夹,然后展开要在其中建立视图的数据库。
3)使用鼠标右键单击“视图”节点,在弹出的快捷菜单中选择“新建视图”命令,打开如图2-55所示的界面。
图2-55 “新建视图”界面的组成
4)使用右键单击关系网格,在弹出的快捷菜单中选择“添加表”命令。
5)在“添加表”对话框的“表”、“视图”、“函数”选项卡中选择要添加到新视图中的表、视图或返回表的用户自定义函数并单击“添加”按钮,如图2-56所示。所选中的对象将出现在关系网格中。
6)单击“列”单元格,然后从列表中选择要引用的字段。所引用的每个字段在网格中占一行,如图2-57所示。如果要使一个字段也同时出现在视图的结果集内,则须在“输出”列中打上“√”,反之,如不想让该字段出现在视图的结果集内,则取消选中。
图2-56 “添加表”对话框
图2-57 选择要引用的字段
7)如果想按某个字段分组,使用鼠标右键单击该字段,然后选择“分组”命令。设置分组后,在关系网格中相应字段的右边将出现一个符号。
8)在“准则”列中输入提取记录时所设置的筛选条件,由此生成一个WHERE子句。在某个字段上设置筛选条件时,在关系网格中相应字段的右边将出现一个符号。在“或”列中输入提取记录时所使用的附加筛选条件并用逻辑运算符OR连接到先前所定义的条件表达式上。
9)如果还想设置视图的其他属性,可以用鼠标右键单击视图窗口,然后选择“属性”命令,并在“属性”对话框中进行设置,如图2-58所示。
图2-58 视图“属性”对话框
10)如果想对视图所返回的结果进行预览,可以单击工具栏上的图形按钮,如图2-59所示。
图2-59 预览视图返回的结果集合
11)当预览结果合乎要求时,可以单击工具栏上的图形按钮或用鼠标右键单击视图窗口,选择“保存”命令。在出现的“另存为”对话框中为所建立的视图指定一个名称,最后单击“确定”按钮,即可将视图保存到数据库中。
2.视图的查询
视图创建后,可以对视图进行各种操作。对视图的操作类似于对表的操作,前面介绍的SQL查询语句均可以应用在视图上。
例如,查询视图CX_VIEW的全部内容。
本例演示了对视图进行简单的查询操作,如图2-60所示。
图2-60 视图的查询
3.视图的更新
在SQL语句中,更新视图操作,共包含3类:
●插入记录的INSERT操作
●修改记录的UPDATE操作
●删除记录的DELETE操作
(1)插入记录的INSERT操作
例2-39 向视图CX_VIEW插入一条新记录(‘2005071101’,‘萧宇’,90,‘数据库’),如图2-61所示。
图2-61 视图的插入操作
(2)修改记录的UPDATE操作
例2-40 将视图CX_VIEW中课程名称为哲学的成绩字段的值修改为85,如图2-62所示。
图2-62 视图的修改操作
(3)删除记录的DELETE操作(www.xing528.com)
例2-41 删除视图CX_VIEW中课程名称为英语的记录,如图2-63所示。
图2-63 视图的删除操作
读一读
1.创建索引的原因
在一个数据库表中检索数据时,如果采取逐行扫描的方式对这个表中的所有记录进行检查,就如同在一本厚厚的书中查找某个特定的词语一样,搜索效率十分低下。索引是对数据库表中的一个或多个字段的值进行排序的结构。与在表中搜索所有的记录相比,索引有助于更快地获取信息。
数据库使用索引的方式与使用书的目录很相似。在一本书前面加上目录,查找资料时不必逐页翻阅就能够快速地找到所需要的主题。借助于索引,执行查询时不必扫描整个表就能够快速地找到所需要的数据。索引提供指针以指向存储在表中指定字段的数据值,然后根据指定的排序次序来排列这些指针。通过搜索索引找到特定的值,然后跟随指针到达包含该值的记录。
书中的目录就是一个列表,其中列出一些标题和包含每个标题的页码。表中的一个索引也是一个列表,其中列出一些值和包含每个值的记录在表中的实际存储位置,这些索引信息放在索引页中,表中的数据则放在数据页中。
索引键可以是表中的单个字段,也可以由多个字段组合而成。一个索引就是一组索引键值的列表,这些值来自于表中的各个记录。索引键值可以是唯一的,例如,选择表中的主键作为索引键时就属于这种情况,索引键也可以具有重复的值。
2.建立索引应该考虑的问题
在数据库中检索记录时,如果能够利用适当的索引对记录进行排序,就会提高检索的效率。但并不是表中的每个字段都需要建立索引,因为增加、删除记录时,除了在表中进行数据处理以外,还需要对每个索引进行额外的维护,这是以耗费系统资源为代价的。索引将占用磁盘空间,并且降低添加、删除和更新记录的速度。在通常情况下,只有当经常查询索引字段中的数据时,才需要在表中创建索引。如果应用程序非常频繁地更新数据,或者磁盘空间有限,最好对索引的数量有所限制。不过,在大多数情况下,索引所带来的数据检索速度的优势大大超过了它的不足之处。
3.索引的类型
根据数据库的功能,可以在数据库设计器中创建3种类型的索引,即唯一性索引、主键索引和聚集索引。
(1)唯一性索引
在表中建立唯一性索引时,组成该索引的字段或字段组合在表中具有唯一值,也就是说,对于表中的任何两行记录来说,索引键的值都是不相同的。如果表中一行以上的记录在一个字段或多个字段的组合上具有相同的值,则不能基于这个字段或多个字段的组合来建立唯一性索引。如果表中的一个字段或多个字段的组合在多行记录中具有NULL值,也不能将这个字段或字段组合作为唯一索引键。用INSERT或UPDATE语句添加或修改记录时,SQL Server将检查所使用的数据是否会造成唯一性索引键值的重复,如果会造成重复的话,则INSERT或UPDATE语句执行失败。
例如,在一个表中包含有身份证号码字段,则这个字段最适合于建立唯一性索引,因为不可能有两个人拥有相同的身份证号码。姓名字段不适合于建立唯一性索引,否则,就不能在表中保存同名同姓的记录了。
(2)主键索引
表中通常有一个字段或一些字段的组合,其值用来唯一标识表中的每一行记录,该字段或字段组合称为表的主键。在数据库关系图中为表定义一个主键时,将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还需要允许快速访问数据。
(3)聚集索引
在聚集索引中,表中各记录的物理顺序与键值的逻辑(索引)顺序相同。只有在表中建立了一个聚集索引后,数据才会按照索引键值指定的顺序存储到表中,由于一个表中的数据只能按照一种顺序来存储,所以在一个表中只能建立一个聚集索引。
如果不是聚集索引,表中各记录的物理顺序与键值的逻辑顺序不匹配。在检索记录的时候,聚集索引比非聚集索引有更快的数据访问速度。在添加或更新记录的时候,由于使用聚集索引时需要先对记录排序,然后再存储到表中,所以使用聚集索引要比非聚集索引速度慢。在一个表中只能有一个聚集索引,但允许有多个非聚集索引。
4.视图概述
视图是创建动态表的静态定义,所谓动态表是指根据选择条件从一个或多个数据集中生成的。使用视图可以查看数据库中的数据。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用。视图不占物理存储空间,它只是一种逻辑对象。
视图是为用户观察或分析数据库中的数据提供的一种格式化的数据窗口。它包括参数、格式和SQL Server查询数据库以及检索信息所需要的其他信息。确切地讲,视图是一个指定以后被引用时要检索行和列的SELECT语句存储定义。在一个视图中,最多可以定义一个或多个表的1024个列。
在视图中被查询的表称为基表。大多数SELECT语句都可以在创建视图的时候使用。视图一般包括以下内容:
●基表列的子集或者行的子集。
●两个或者多个基表的联合。
●两个或者多个基表的连接。
●基表的统计汇总。
●另外一个视图的子集。
●视图和基表的混合。
使用视图有以下优点:
(1)集中用户使用的数据
使用视图可以创建一个更加容易控制的环境,在表中的一部分数据允许访问,而另外一部分数据则不允许访问。可以从视图中剔除那些没有必要的冗余数据。用户可以非常方便地操作视图中的数据,并可以修改视图中的数据。
(2)掩盖数据库的复杂性
使用视图可以把数据库的设计和用户的使用屏蔽开来,这样,数据库开发人员就可以使用不同的数据库设计方法,也不会影响到用户的使用。
(3)简化用户权限的管理
数据库拥有者可以把查询的权限授予一般用户,而保留基表的使用权限。这样,就可以保护基表的设计而不影响用户的查询。
(4)重新组织数据
用户可以根据需要,创建一个连接两个表或者多个表的复杂查询的视图,然后把视图中的数据导出到别的应用程序,从而可以对数据进行进一步的处理。归纳总结
通过这次任务的实践,了解了建立索引和视图的作用,掌握了索引与视图的建立、修改与删除等管理操作,了解了建立索引时应注意的事项,了解了对视图进行数据操作时应注意的问题,为更好、更方便地处理数据提供了保障。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。