<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
视图的作用:
1.
将用户限定在表中的特定行上,例如,只允许雇员看到工作跟踪表内关于自己的行。
2.
将用户限定在特定列上。例如,对于那些不负责处理工资的员工,只允许他们看见雇员表中的姓名列、性别列,部门列,等等,但却看不到任何包含工资信息的列。
可以让不同的用户以不同的方式看到不同或者是相同的数据集,职位不同,权限不同,则看到的结果不同。
3.
将多个表中的列联接起来,使它们看起来像一个表。
4.
大大简化了用户对数据的操作,屏蔽了数据的复杂性,用户不必了解数据库的结构,就可以方便地使用和管理数据。
5
.实现安全机制。
视图通常用来集中、简化、和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。避免了用户直接操作原始表。
创建视图:
有两种方法:一是
SSMS
图形界面
另一个是
SQL
语句
通过
SSMS
图形界面来创建,修改、重命名及删除视图
可以利用向导和
SSMS
图形界面来创建视图。
注意:视图的属性
----
加密浏览,以后就不能再进行更改,让别人无法看到具体
SELECT
下面我们来做第一个视图,作用就是查看每个公司的员工。我们的这个例子用到的是我们前面用到的
dufei
数据库。
我们选择员工表——打开视图节点,里面已经有了两个系统自带的视图我们不管它们。我们选择“新建视图”——打开了视图的设计界面。上面的灰色区域是我们在这个视图中要用到的表的存放区域(关系图),工具框上的按纽我们可以通过它们对这个区域进行订制。我们看一下最后一个“添加表”按纽。我们把人事表和公司表都添加到关系图中!想显示那个表的什么字段只需要选中前的复选框是不是就可以了。下面就出现相应的代码:在代码区域右击选择“验证
SQL
语法”,如果说不报错,应该说就没有问题的。我们就运行一下是不是我们想要的结果,结果正确了我们是不是应该保存下来吧。我们选择工具框上的“保存”输入一个名字(
view1
)
.
就可以了。以后我再想看同样的记录,只要打开这个视图,运行就可以了。就算以后数据库中的数据发生了改变,这里得到的也是最新的结果。
下面我们看一下如何通过一个
SQL
语句来建立视图;
格式:
Create view
视图名
[(column1,column2…)]
[ with encryption ] [ column]
AS
Select
语句
[ with check option]
查询语句
AS
是视图要执行的操作。后面是
SELECT
语句,该语句可以使用多个
表或其他的视图。
只能在当前数据库中创建视图。
视图不必是具体某个表的行和列的简单子集,可以用具有任意复杂性的
select
语句对多个表或其他视图进行操作。
如果视图所依赖的基本表被删除,则再次访问视图时,会产生错误信息。如果创建了新表或视图(表的结构与有前的基本表的结构完全一样)则该视图可以继续使用,否则,只能重新创建视图
。
[column]
指定视图的列别名。
create view nan_view
(
姓名
,
性别
,
年龄
)
as
select * from
WITH ENCRYPTION
是否要加密
[ with check option]
强制视图上执行的所有数据修改语句都必须符合
select
语句的准则
例如我们建一个视图,作用是;显示员工表中所有男性记录。
Create view yuangong
As
Select * from
员工表
where
性别
=’
男
’
视图通常被作为一个虚拟表,这就意味着视图看上去像表,也像表一样操作,但视图就不像表一样包含数据,视图是从表导出的数据,其结构和数据是建立在对表的查询基础上的。和真实的表一样,视图也包括几个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据行来源于其所引用的表。因此,视图不是真实存在的基础表而是一个虚拟表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
如:
SELECT * FROM yuangong
select * from yuangong
也可以像表一样插入记录
,
删除记录
,
同样数据也是保存在表里
!
insert into yuangong (
编号
,
姓名
,
性别
) values (8,'bb','
男
')
delete from yuangong where
姓名
='bb'
显示视图:
获取关于视图的信息:
1.
使用
sql
语句
:
使用
sp_helptest
显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。
格式:
sp_helptest
视图名
如:
sp_helptest nan_view
此命令在多个行中显示用来创建对象的文本,其中每行可以有
255
个字符。
使用
SSMS
图形界面获取视图信息:
删除视图:
修改视图:
Alter view
视图名
格式同
creae view
视图名
一模一样
例:修改男员工视图,去掉加密和限制。和以前的相反。
Alter view
男员工工资视图(男员工姓名,员工工资)
AS
Select
姓名,工资
from yuangong where
性别
=’
男
’ with check option
Sp_helptext ‘
男员工工资视图
’
删除:
Drop view
名称
重命名:
sp_rename
旧名
,
新名
通过视图:检索,插入,删除,更新数据
插入记录时应注意:
1.
权限问题
2.
由于视图通常只引用表中的部分字段,未引用的字段如何填充数据:如允许空,主键等。
3.
视图中不能包含多个字段的组合。
4.
不能包含
distinct
或
group by
子句。
5.
如使用了
with check option
,则须符合
where
子句。
6.
若视图中引用了多个数据表,则一次只能向一个表插入记录。
分别举例!!!