视图

一,什么是视图

1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。

2.根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使用。

二,视图的优缺点

1,可屏蔽一些不想给人看到的字段,视图是有区别表的。我们查询表的时候是可以直接查询到所有的字段。但是视图不是,试图给你看到的时候创建视图的时候可以看到的字段。

2,可以简化sql语句。对于一些复杂的sql语句,每次写的时候会有一大堆。我们可以先创建一个视图,在查询视图。语句简洁。

3,数据安全(基于视图只有查看的权限)。视图是可以设计权限的,创建视图可以设置视图的权限。假如我们只设置查看的权限,那么我们没有办法基于视图操作基表。

4,效率会低于直接的sql语句(如果对性能有要求,我们可以用储存过程代替)

5,视图的数据跟基表的数据是共享的。(基表有新增数据,视图也会有新增数据)

三,语法

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW 视图名称

AS  查询的sql语句

[WITH READ ONLY CONSTRAINT]

列子: create or replace view myview as select * from student with read only

语法解析:

1. OR REPLACE:如果视图已经存在,则替换旧视图。

2. FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

3. NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

4. WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

删除 drop view 视图名称,delete 视图名称 (删除视图的数据)

查询select  *  from 视图名称

四,注意点

我个人认为创建视图更多的是用于查询,所以创建的时候我一般都是指定只能用于查询,不能对基表操作


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值