SQL Server 2005系列教学(8) 视图

<?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.       若视图中引用了多个数据表,则一次只能向一个表插入记录。
分别举例!!!
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值