数据库之视图

问题一:为什么需要视图?

我个人认为最主要的两个作用是:

  • 方便用户进行查询操作

    • 因为当我们通过一个很复杂的查询语句去查询数据的时候,很麻烦,我们不喜欢每次都写这条查询语句,比如

    • SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept FROM SX,SY WHERE SX.Sno=SY.Sno;

    • 上述查询语句很复杂,如果我们每次都写这条语句查询,要命啊,所以可以使用视图,如下

    • create view 视图名(比如test.v) as 查询语句(比如SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept FROM SX,SY WHERE SX.Sno=SY.Sno

    • 以后则直接输入select * from 视图名;即可,方便。

  • 为安全性考虑

    • 有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应该看到这些数据的用户视图上。这样视图机制就自动提供了对机密数据的安全保护功能。例如,Student表涉及全校15个院系学生数据,可以在其上定义15个视图,每个视图只包含一个院系的学生数据,并只允许每个院系的主任查询和修改本原系学生视图。

    • 视图是产看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度来说,视图可以不给用户接触数据表,从而不知道表结构。

问题二:什么是视图?

视图是已经编译好的sql语句;视图号称虚拟表;

问题三:为什么视图号称虚拟表?

因为视图可以建立一个虚拟表,比如有两个表SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept),通过上述两个真实表构造一个虚拟表:学生关系Student(Sno,Sname,Ssex,Sage,Sdept),可以如下操作:

如果建立一个视图Student:
CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)
AS
SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept
FROM SX,SY
WHERE SX.Sno=SY.Sno;

表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

转载于:https://my.oschina.net/yangan/blog/294637

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值