# [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` 如何刷新資料