首页 > 编程知识 正文

oracle中创建视图并查询视图,oracle视图创建

时间:2023-05-04 13:26:06 阅读:57828 作者:1751

视图可以理解为数据库中的虚拟表。

基于现有表创建,这些表称为基表。

在一个或多个qfdlc表中执行相关查询后,配置虚拟逻辑表。

查询视图本质上是将查询与表相关联。

视图本身不包含数据,只是查询结果,当基表中的数据发生更改时,视图中的数据也会发生更改。 为视图提供数据内容的语句是SELECT语句,视图可以理解为保存的SELECT语句。 视图为用户提供了基本表数据的另一种表示形式。

视图简化了复杂的数据,补充了表结构设计,控制了对数据的访问,避免了对同一数据的重复访问,并提高了安全性。

创建视图的语法如下:

create [ or replace ] view view [ (aliad [,alias].]

as [ with只读约束]

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

WITH READ ONLY :默认情况下不输入。 用户可以通过视图对基表执行添加/删除操作,但基表有很多限制。 例如,基表中的列不能为空,但如果该列未显示在视图中,则无法通过视图执行insert操作。 或者,基表中设置了某些约束。 此时,如果插入或更改视图的值,可能会报告错误。 但是,在现实的开发中,基本上不进行通过视图追加或删除表中的数据的操作。

视图也分为几个类别。

简单视图是不包含函数或表达式的单个表的视图,可以执行DML语句。 这意味着可以执行添加、删除和更改操作。

复杂视图是包含执行DML语句时必须满足特定条件的函数、表达式或分组数据的视图。 通常,在定义复杂视图时,必须定义函数或表达式的别名。

连接视图是基于多个表创建的视图,通常不在此视图中执行INSERT、UPDATE或DELETE操作。

只读视图是只允许选择操作的视图,指定WITHREADONLY选项。 在这些视图中,无法执行插入、更新和删除操作。

CHECK约束视图为视图定义CHECK约束。 在此视图中执行插入或更新操作时,数据必须与查询结果匹配。

-创建简单视图:

创建视图EMP vu

AS SELECT employee_id,last_name,salary

来自员工;

-查询结果:

CREATE VIEW子句中每一列的别名必须与子查询中的每一列相对应。

如果视图定义包含以下元素之一,则delete:不可用

-组函数

--GROUP BY子句

--DISTINCT关键字

--ROWNUM伪列

如果视图定义包含以下元素之一,则update:不可用

-组函数

--GROUP BY子句

--DISTINCT关键字

--ROWNUM伪列

-列的定义是表达式

如果视图定义包含以下元素之一,则insert:不可用

-组函数

--GROUP BY子句

--DISTINCT关键字

--ROWNUM伪列

-列的定义是表达式

-视图定义中不包括表中的非空列

删除视图只会删除视图定义,而不会删除基表中的数据

-删除简单视图:

DROP VIEW empvu;

-查询结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。