首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库基础之视图

点击蓝字关注我吧

【本文详细介绍了数据库的基础知识之视图的基本概念和常用操作,欢迎读者朋友们阅读、转发和收藏!】

1 基本概念

1.1 视图的概念

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

2. 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据;从数据库系统内部来看,一个视图是由 SELECT 语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表 一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

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

1.2 视图的优点

1. 简化数据操作:视图可以简化用户处理数据的方式。

2. 着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。

3. 视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

4. 提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

5. 自定义数据:视图允许用户以不同方式查看数据。

6. 导出和导入数据:可使用视图将数据导出到其他应用程序。

7. 有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。这是在实际开发中比较有用的

8. 复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。

1.3 视图的操作

创建视图

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name

[(alias[, alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]]

[WITH READ ONLY]

OR REPLACE :若所创建的试图已经存在, ORACLE 自动重建该视图;

FORCE :不管基表是否存在 ORACLE 都会自动创建该视图;

NOFORCE :只有基表都存在 ORACLE 才会创建该视图:

alias :为视图产生的列定义的别名;

subquery :一条完整的 SELECT 语句,可以在该语句中定义别名;

WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;

WITH READ ONLY :该视图上不能进行任何 DML 操作。

查询视图

视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。还可以查询视图的全部信息和指定的数据行和列。

删除视图

DROP VIEW VIEW_NAME 语句删除视图。

删除视图的定义不影响基表中的数据,只有视图所有者和具备 DROP VIEW 权限的用户可以删除视图。视图被删除后,基于被删除视图的其他视图或应用将无效。

更新视图

更新视图是指通过视图来插入、更新、删除表数据,因为视图是虚表,其中没有数据。

通过视图更新的时候都是转到基表进行更新,如果对视图增加或者删除记录,实际上是对基表增加或删除记录。

当视图中包含如下内容的时候,视图的更新操作将不能被执行

( 1 )视图中包含基本中被定义为非空的列

( 2 )定义视图的 SELECT 语句后的字段列表中使用了数学表达式

( 3 )定义视图的 SELECT 语句后的字段列表中使用聚合函数

( 4 )定义视图的 SELECT 语句中使用了 DISTINCT 、 UNION 、 TOP 、 GROUP BY 、 HAVING 子句

我知道你在看

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200607A09HPJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券