网站大量收购闲置独家精品文档,联系QQ:2885784924

实现SQLServer数据库中的视图与查询.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实现SQLServer数据库中的视图与查询.ppt

§1 视图基本概念 一、视图基本概念 1.基本表 基本表是独立存在的表。在SQL Server中创建了一个基本表,那么可以在表中添加记录,这些记录存放在硬盘上。“学生表”、“课程表”、“成绩表”等等,都是基本表。 2.视图 视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在物理上并不实际存在。视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。视图一旦定义后,就可以和基本表一样被查询、被删除,也可以在一个视图基础上再定义新的视图。 视图兼有表和查询的特点:与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;与表相类似的是,视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上。我们可以用视图使数据暂时从数据库中分离成为游离数据,以便在主系统之外收集和修改数据。 二、视图的优缺点 当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。 视图有很多优点,主要表现在: 1、视点集中 视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。 2、简化操作 视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。 3、定制数据 视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。 4、合并分割数据 在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。 5、组合分区数据 用户可以把来自不同表的两个或多个查询结果组合成单一的结果集。这在用户看来是一个单独的表,称为分区视图。 6、安全性 ? 视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。 7、视图的缺点 视图的缺点主要表现在其对数据修改的限制上。 三、使用视图的场合 1)表的行或列的子集。 2)两个或多个表的联合。 3)两个或多个表的连接。 4)其他视图的子集。 5)视图与表的组合。 §2 创建视图 创建视图时应该注意以下情况: ①只能在当前数据库中创建视图。 ②视图中最多只能引用1024列。 ③如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。 ④如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。 ⑤当视图所引用不同基表的列中有相同列名时或者希望给视图中的列指定新的列名时则需要重新指定列的别名。 ⑥不能在视图上创建索引,不能在规则、缺省、触发器的定义中引用视图。 ⑦当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库对象存在,而且数据修改语句不能违反数据完整性规则。 ⑧视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的。此外,该名称不得与该用户拥有的任何表的名称相同。 注意: 一个视图可以基于一个或若干个基表,也可以基于一个或若干个视图,同时也可以基于基表和视图的混合体。 使用Transact-SQL语言创建视图 创建视图的语法格式如下: CREATE VIEW [数据库名.][所有者.]视图名[(列名[,...n])] [WITH {ENCRYPTION|SCHEMABINDING|VIEW_METADATA}] AS SELECT查询语句 [WITH CHECK OPTION] 参数说明: (1)视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。 (2)CREATE VIEW子句中的列名是视图中显示的列名。只有在下列情况下,才必须命名 CREATE VIEW 子句中的列名:当列是从算术表达式、函

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档