视图管理
视图(View)是基于一个或多个表(或其他视图)的查询结果所构建的一个虚拟表。它不存储实际数据,而是在查询时动态执行其定义的 SQL 语句来返回数据。用户可以像操作普通表一样对视图进行 SELECT 操作,但不能直接插入、更新或删除数据。视图所承载的数据与其构建时的基表数据息息相关,若基表中的数据发生变化,从视图中查询的数据也随之改变。
用户可通过CREATE VIEW VIEW_NAME AS或者CREATE OR REPLACE VIEW VIEW_NAME AS创建视图,AS后跟随SELECT语句。
sql
CREATE OR REPLACE VIEW USER_V1 AS SELECT ID, AGE, NAME FROM USERS WHERE AGE > 18;用户可通过DB_VIEWS或MY_VIEWS以及DESC命令查询视图的相关信息。
SQL
SQL> SELECT * FROM DB_VIEWS WHERE VIEW_NAME = 'USER_V1';
OWNER VIEW_NAME VIEW_TYPE COLUMN_COUNT TEXT TEXT_LENGTH CREATED_TIME LAST_DDL_TIME
---------------------------------------------------------------- ---------------------------------------------------------------- --------- ------------ ---------------------------------------------------------------- ------------ ---------------------- ----------------------
SYS USER_V1 NORMAL 3 SELECT ID, AGE, NAME FROM USERS WHERE AGE > 18 46 2025-11-13 17:16:37 2025-11-13 17:16:37
1 rows fetched.
SQL> desc USER_V1
Name Null? Type
----------------------------------- -------- ------------------------------------
ID NOT NULL BINARY_INTEGER
AGE BINARY_INTEGER
NAME VARCHAR(10 BYTE)查询视图中的数据与查询表数据无差别,用户可通过DROP VIEW删除视图。
sql
DROP VIEW USER_V1;
DROP VIEW IF EXISTS USER_V1;