SQL Server 2005和2008里的物理数据存储(二)

日期: 2008-11-06 作者:SearchSQLServer.com翻译:April 来源:TechTarget中国 英文

视图   视图是就存储T-SQL语言的,而T-SQL语言则用SELECT语句来显示一个表到更多个表的数据,视图参考的表通常指的是视图基表。就像字面意思表示的那样,视图允许你创建各种有潜在信息的图。你可以查阅每个基表制作视图。这一性能让你分割数据并且只显示相关信息。

  你访问视图和访问表的方式一样。所有的基本DML语句工作原理和视图相反、和表的也相反,当然也有一些例外。如果你有一个视图涉及一个以上的基表,你就可以只用INSERT、UPDATE或DELETE语句查阅一个基表中的列。如:假设一个视图从两个表中返回的是客户数据。

一个表存储的是客户信息,另一个表存储的是该客户地址数据。因此,custo……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

视图

  视图是就存储T-SQL语言的,而T-SQL语言则用SELECT语句来显示一个表到更多个表的数据,视图参考的表通常指的是视图基表。就像字面意思表示的那样,视图允许你创建各种有潜在信息的图。你可以查阅每个基表制作视图。这一性能让你分割数据并且只显示相关信息。

  你访问视图和访问表的方式一样。所有的基本DML语句工作原理和视图相反、和表的也相反,当然也有一些例外。如果你有一个视图涉及一个以上的基表,你就可以只用INSERT、UPDATE或DELETE语句查阅一个基表中的列。如:假设一个视图从两个表中返回的是客户数据。一个表存储的是客户信息,另一个表存储的是该客户地址数据。因此,
customer_address视图的定义如下:


CREATE VIEW customer_address 
AS
SELECT customer.first_name, 
customer.last_name, 
customer.phone, 
address.address_line1, 
address.city, 
address.state, 
address.zip
FROM customer
JOIN address
ON address.customer_id = customer.customer_id
WHERE address.type = 'home'

  如果你只查阅客户表或地址表,你就可以对customer_address视图进行INSERT、UPDATE和DELETE操作。

  可能你会问自己,“我为什么要使用视图,而不是直接查阅表呢?”下面是在数据库中使用视图的几个理由。首先,你能使用视图掩盖基础表的复杂性。如果你有一个单独的视图显示客户的地址信息,开发人员和中端用户就能够在视图中访问他们所需要的信息,而不是访问两个表。这项技术排除了用户需要了解真个数据库的必要性,他们可以将精力集中到某一个单独的对象上。在单个视图中启用基表时你就受益匪浅。

  使用视图还能允许你在不影响用户的情况下更改表或者数据存储的位置。最后,只要你更新试图定义,让它适应你更改的表,你的用户就不需要知道你已经做了改变。你还可以用视图更好的进行安全管理。如果有用户要查看一些员工数据而不是如社会安全数字或工资这一类的敏感数据,你就可以建一个只显示他们所需要的信息的视图。

  最后,考虑怎样在查询你的数据库时使用视图节省时间。每次你都运行T-SQL代码,SQL Server必须首先编码。将人们易读SELECT语句转换成SQL Server引擎能懂的形式。结果代码就是执行计划。运行视图的执行计划存储在SQL Server中,T-SQL后面的代码也编写出来了。这一过程要耗时间,但是在创建视图的时,编码就已经完成了。这样你每次访问视图时都节省了时间。你第一次访问视图时,SQL Server就会算出从基表中检索数据的最佳方法,将表结构和索引放在适当的位置。下次访问该视图又会执行这种方案。

  依我之见,视图可能就是SQL Server中最没有被充分利用的功能。由于某些原因,人们尽量避免使用视图或以一种低效率的方式使用视图。在第十一章中,我们介绍了让你最能受益的视图使用方式。


  数据类型

  正如在之前提到的一样,每个表中每个列都必须设置存储指定类型的数据。你可以通过把数据类型和列联系起来的方式设置。数据类型就是你用来指定列中能存储的类型、长度、精度和数据尺度。SQL Server 2008介绍了一些普通的数据类型范畴,每个范畴都包含指定的数据类型。其中的一些数据类型和我们在第二章中了解到的类型很类似。在这一部分中,我们将了解每种SQL Server数据类型,还会谈到SQL Server引擎如何处理和存储这些数据类型。

翻译

April
April

相关推荐