Man page - create_view(7)

Manual

CREATE VIEW

NAME
SYNOPSIS
DESCRIPTION 描 述
PARAMETERS 引 數
NOTES 注 意
EXAMPLES 例 子
COMPATIBILITY 相 容 性
譯 者


NAME

CREATE VIEW - 定 義 一 個 檢 視

SYNOPSIS

CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query

DESCRIPTION 描 述

CREATE VIEW 定 義 一 個 查 詢 的 檢 視 。 這 個 檢 視 不 是 物 理 上 實 際 存 在 ( 於 磁 碟 ) 的 。 具 體 的 說 , 自 動 生 成 一 個 改 寫 索 引 規 則 ( 一 個 ON SELECT 規 則 ) 的 查 詢 用 以 支 援 在 檢 視 上 的 檢 索 。

CREATE OR REPLACE VIEW 類 似 , 不 過 是 如 果 一 個 同 名 的 檢 視 已 經 存 在 , 那 麼 就 替 換 它 。 你 只 能 用 一 個 生 成 相 同 欄 位 的 新 查 詢 替 換 一 個 檢 視 ( 也 就 是 說 , 同 樣 欄 位 名 和 資 料 型 別 ) 。

如 果 給 出 了 一 個 模 式 名 ( 比 如 , CREATE VIEW myschema.myview ...) , 那 麼 該 檢 視 是 在 指 定 的 模 式 中 建 立 的 。 否 則 它 是 在 當 前 模 式 中 建 立 的 。 該 檢 視 名 字 必 需 和 同 一 模 式 中 任 何 其 它 檢 視 , 表 , 序 列 或 者 索 引 的 名 字 不 同 。

PARAMETERS 引 數

name

所 要 建 立 的 檢 視 名 稱 ( 可 以 有 模 式 修 飾 ) 。

column_name

一 個 可 選 的 名 字 列 表 , 用 於 當 作 檢 視 的 欄 位 名 。 如 果 沒 有 給 出 , 欄 位 名 取 自 查 詢 。

query

一 個 將 為 檢 視 提 供 行 和 列 的 查 詢 ( 也 就 是 一 條 SELECT 語 句 ) 。

請 參 閱 SELECT [ select (7)] 獲 取 有 效 查 詢 的 更 多 資 訊 。

NOTES 注 意

目 前 , 檢 視 是 隻 讀 的 : 系 統 將 不 允 許 在 檢 視 上 插 入 , 更 新 , 或 者 刪 除 資 料 。 你 可 以 透 過 在 檢 視 上 建 立 把 插 入 等 動 作 重 寫 為 向 其 它 表 做 合 適 操 作 的 規 則 來 實 現 可 更 新 檢 視 的 效 果 。 更 多 資 訊 詳 見 CREATE RULE [ create_rule (7)].

使 用 DROP VIEW 語 句 刪 除 檢 視

請 注 意 檢 視 欄 位 的 名 字 和 型 別 不 一 定 是 你 們 期 望 的 那 樣 。 比 如 ,

CREATE VIEW vista AS SELECT ’Hello World’;

在 兩 個 方 面 很 糟 糕 : 欄 位 名 預 設 是 ?column?, 並 且 欄 位 的 資 料 型 別 預 設 是 unknown。 如 果 你 想 檢 視 的 結 果 是 一 個 字 串 文 字 , 那 麼 用 類 似 下 面 這 樣 的 東 西

CREATE VIEW vista AS SELECT text ’Hello World’ AS hello;

對 檢 視 引 用 的 表 的 訪 問 的 許 可 權 由 檢 視 的 所 有 者 決 定 。 不 過 , 在 視 圖 裡 呼 叫 的 函 式 當 作 他 們 直 接 從 使 用 檢 視 的 查 詢 裡 呼 叫 看 待 。 因 此 , 檢 視 的 使 用 者 必 須 有 使 用 檢 視 呼 叫 的 所 有 函 式 的 許 可 權 。

EXAMPLES 例 子

建 立 一 個 由 所 有 喜 劇 電 影 組 成 的 檢 視 :

CREATE VIEW comedies AS
SELECT *
FROM films
WHERE kind = ’Comedy’;

COMPATIBILITY 相 容 性

SQL 標 準 為 CREATE VIEW 聲 明 瞭 一 些 附 加 的 功 能 :

CREATE VIEW name [ ( column [, ...] ) ]
AS query
[ WITH [ CASCADE | LOCAL ] CHECK OPTION ]

完 整 的 SQL命 令 可 選 的 子 句 是 :
CHECK OPTION

這 個 選 項 用 於 可 更 新 檢 視 。 所 有 對 檢 視 的 INSERT和 UPDATE都 要 經 過 檢 視 定 義 條 件 的 校 驗 。 ( 也 就 是 說 , 新 資 料 應 該 可 以 透 過 檢 視 看 到 。 ) 如 果 沒 有 透 過 校 驗 , 更 新 將 被 拒 絕 。

LOCAL

對 這 個 檢 視 進 行 完 整 性 檢 查 。

CASCADE

對 此 檢 視 和 任 何 相 關 檢 視 進 行 完 整 性 檢 查 。 在 既 沒 有 宣 告 CASCADE 也 沒 有 宣 告 LOCAL 時 , 假 設 為 CASCADE。

CREATE OR REPLACE VIEW 是 PostgreSQL 的 擴 充 套 件 。

譯 者

Postgresql 中 文 網 站 何 偉 平 <laser@pgsqldb.org>

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。
中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh