数据库——视图

前言:我们发现在数据库操作的过程中有时候需要的数据分散在几个表中,如果我们一直利用笛卡尔积来进行连接去操作的话就会很复杂产生很大的消耗。这时候我们可以创建一个虚表——视图来进行操作。

视图的定义

在SQL中,外模式一级数据结构的基本单位是视图(view),视图是从若干基本表和其他视图采用SELECT语句构造出来的。

在创建视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据。因此,称视图为虚表。

视图的创建  

创建视图可用“CREATE VIEW”语句实现。其句法如下:       

CREATE VIEW <视图名>(<列名序列>)

                       AS <SELECT 查询语句>

例 对于教学数据库中基本表S、SC、C,用户经常要用到S#、SNAME、CNAME和SCORE等列的数据,那么可用下列语句建立视图:

CREATE VIEW STUDENT_SCORE(S#,SNAME,CNAME,SCORE)

                                      AS SELECT S.S#,SNAME,CNAME,SCORE

                                             FROM S,SC,C

                                             WHERE S.S# = SC.S# AND SC.C# = C.C#;

视图的撤销    

在视图不需要时,可以用“DROP VIEW”语句把其从系统中撤销。其句法如下:         

DROP VIEW 视图名  

例 撤销STUDENT_SCORE视图,可用下列语句实现:                  

DROP VIEW STUDENT_SCORE;

视图的更新(在这里不建议对视图进行更新)

如果视图是从单个基本表只使用选择、投影操作导出的,并且包含了基本表的主键,那么这样的视图称为“行列子集视图”,并且可以被执行更新操作。

例子:

如果定义了一个有关男学生的视图:           

 CREATE VIEW S_MALE                     

              AS SELECT S#,SNAME,AGE               

                     FROM S               

                     WHERE SEX ='M';      

这个视图是从单个关系只使用选择和投影导出的,并且包含主键S#,因此是可更新的。

例如,执行插入操作:              

INSERT INTO S_MALE              

VALUES('S28','WU',18);    

系统自动会把它转变成下列语句:         

INSERT INTO S       

VALUES('S28', 'WU',18, 'M');

除此之外都不可以进行视图的更新,只有这一种情况可以对视图进行更新!

视图的优点:

视图是用户一级的数据观点,由于有了视图,使数据库系统具有下列优点:  

(1)视图提供了逻辑数据独立性。  

(2)简化了用户观点。数据库的全部结构是复杂的,并有多种联系。

(3)数据的安全保护功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用编程写诗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值