这章给大家介绍一下数据库里的视图这个功能。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
视图:view
本质:虚拟表。只存放select语句,不存放具体数据。
好处:1.可以将数据限制在某些行上。
2.可以将数据限制在某些列上。
3.可以简化操作
4.可以实现安全机制
一.用图形界面创建视图。视图名为view1
在视图上右击新建视图,然后把员工表,公司表,网址表三个表选准点击添加,完成后点击关闭。


二.用命令创建。视图名为view2
命令创建完整格式。
Create view 视图名
【with check ortion】
As
Select 语句
【with check option】
(1.)with ehcryption 加密
(2.)with check option 满足条件
例1.创建视图用于显示女同志的信息。
如:create view view2
As
Select * from yuangong where 性别=‘女’

Select * from view2进行查看。

测试:对视图进行基本操作。
(1)Insert (2)deleted (3)update (4)select
例(1)插入一条记录。
insert into view2 values (9,'小王','女',20,'北京',118,'网站部',2000,0,100023,<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2001-10-11)

小王记录以插入。

Yuangong表也有小王的记录。

用delete删除视图view2里的小王记录。

查看是否以删除小王记录,如下图所示以删除。

Yuangong表中也没有小王的记录了。
例2.只允许向view2视图中存放女同志信息。
语法为:alter 视图 视图名
As
Select * from 表名 【where条件】
With check option

测试一下,插入一条男同志信息,如下图插入失败。

例3.显示视图的源代码。
语法为:sp_helptext 视图名

例4.对源代码进行加密。
语法为:alter 视图 视图名
With encryption
As
Select * from 表名 【where条件】

测试,查看一下源代码,如下图所示源代码以加密。

只能加密不能解密。如想解密如下命令。
alter 视图 视图名
As
Select * from 表名 【where条件】

如下图所示又能看到源代码了。

例5.创建视图,用于显示三个表的正确数据。创建视图view3.
语法为:create view view3
as
select 公司表.姓名,公司表.性别,年龄,公司名称,
籍贯,手机,网址 from 公司表,员工表,网址表 where
公司表.姓名=员工表.姓名 and 公司名称=公司名

打开视图进行查看,如下图所示成功。

不能向视图中插入数据的情况。
1. 如果基本表有多个,则不允许插入数据。
2. 如果视图中只包含部分字段,而其他字段不允许有空值,则插入失败。
3. 如果视图中含有字段组合,则不允许插入。
4. 如果视图中含有distinct / group by 则不允许插入。
5. 如果违背 with check option 则不允许插入。
转载于:https://blog.51cto.com/guoweishuai/244049