oracle视图和表的区别是什么

1. 简介

Oracle是目前使用范围最广泛的关系数据库管理系统之一。在Oracle中,表和视图是两个非常常见的概念,本文将介绍这两者之间的区别。

2. 表和视图的定义

2.1 表

表是Oracle中最基本的数据存储单位,是由行和列组成的二维结构。在表中,每一列都有一个唯一的名称和数据类型,每一行则代表着一个实体或事物的数据记录。表中的数据可以经过增、删、改、查等各种操作进行管理。

CREATE TABLE student (

sno VARCHAR2(20) PRIMARY KEY,

sname VARCHAR2(20),

gender CHAR(1),

age NUMBER(3)

);

上述代码创建了一个名为student的表,其中包含四个列:sno、sname、gender和age。表中sno列设置为主键。

2.2 视图

视图是一种虚拟表,不是实际存在的表,是通过对一个或多个实际表的查询操作而形成的。通过视图,用户可以以逻辑方式看待数据,而不必考虑数据的物理存储位置。

CREATE VIEW student_view AS

SELECT sname, gender, age FROM student

WHERE age>18;

上述代码创建了一个名为student_view的视图,其中包含三个列:sname、gender和age,且age大于18。

3. 表和视图的区别

3.1 物理存储

表是实际存在的物理存储单位,而视图是虚拟的、不存在的表。这也是二者最本质的区别。

3.2 数据更新

表中的数据可以进行增、删、改、查等各种操作,而视图中的数据是由基础表生成的,一般不可以直接进行增、删、改操作。但是,我们可以对视图进行插入、更新、删除等操作,这些操作实际上是对基础表进行的。

--插入操作

INSERT INTO student_view (sname, gender, age)

VALUES ('Tom', 'M', 20);

--更新操作

UPDATE student_view SET age=21 WHERE sname='Tom';

--删除操作

DELETE FROM student_view WHERE sname='Tom';

上述代码分别对student_view视图进行了插入、更新、删除操作,实际上是对基础表student进行了相应的操作。

3.3 数据查询

查询表和查询视图的语法基本相同,但是表中的数据相对更真实和可靠。

SELECT * FROM student;

SELECT * FROM student_view;

上述代码分别查询了student表和student_view视图中的所有数据。

3.4 使用范围

视图对基础表的数据进行了逻辑上的封装,可以对用户隐藏不必要的数据,便于用户的使用。而表在一般情况下更适合进行数据的长期存储和管理。

4. 总结

本文介绍了Oracle中表和视图的定义以及二者之间的区别。表是实际存在的物理存储单位,可以进行多种操作,适合进行数据的长期存储和管理;而视图是虚拟的表,数据是由基础表生成的,一般不可以直接进行多种操作,适合进行数据的逻辑封装,便于用户的使用。

上一篇:Oracle视图知识点

下一篇:oracle视图删除

数据库标签