---
# System prepended metadata

title: '[SQL] 建立視觀表'
tags: [Oracle, sql, database]

---

# [SQL] 建立視觀表
> 使用環境
> Oracle SQL Developer (21.2.1.204.1703)
> Java(TM) 平台 (1.8.0_291)

## View 視觀表、視圖
是一種虛擬的表，表內資料屬於查詢結果，因此不佔儲存空間。類似儲存select指令的地方，每次呼叫會執行查詢指令。

### 建立
```=sql!
CREATE [OR REPLACE] VIEW view_name 
AS
SELECT column1, column2, ...
FROM table_name
WHERE conditions;
```
* `CREATE VIEW` 建立視觀表的起始語句
* `OR REPLACE` 如果同名的視觀表已經存在就覆蓋它

### 刪除
```=sql!
DROP VIEW view_name;
```


## Materialized View 觀察表
一種特殊的視觀表，會實際儲存查詢結果，可以提高查詢效能。

### 建立
```=sql!
CREATE MATERIALIZED VIEW materialized_view_name
BUILD [IMMEDIATE|DEFERRED]
REFRESH [FAST|COMPLETE|FORCE] [START WITH date] [NEXT date]
AS
SELECT column1, column2, ...
FROM table_name
WHERE conditions;
```
* `CREATE MATERIALIZED VIEW` 建立觀察表的起始語句
* `BUILD` 觀察表的建立方式
* `REFRESH` 觀察表的刷新方式
* `START WITH`、`NEXT` 如何刷新資料