OceanBase 開發人員中心(OceanBase Developer Center,ODC)支援可視化方式建立視圖。本文介紹如何使用 ODC 建立視圖。
概述
視圖是一個虛擬表,其結構和內容是由一張或多張表中的部分資料群組成並通過SELECT查詢語句擷取,本身並不包含資料。
視圖作用
簡化資料查詢操作:視圖能夠將資料庫中不同表中所需的資料群組合成一個單表,利用視圖,將多表查詢轉換成視圖的單表查詢。
限制資料訪問操作:使用視圖僅向特定使用者公開特定資料,使用者僅能查看視圖所顯示的資料。

如上圖所示,建立視圖需要進行以下 5 個步驟:
指定基本資料。
選擇基表。
選擇欄位。
確認 SQL。
完成建立視圖。
本文檔以在 ODC 中建立員工薪資視圖(salary)為例,將 employee 表中的 name 和 consumer 表中的 budget、dept_name 資料群組合到視圖 salary 中。
文中所使用的均為樣本資料,您可根據實際情況對資料進行替換。
操作步驟
步驟一:指定基本資料
在 OceanBase 開發人員中心(OceanBase Developer Center,ODC)單擊串連名進入串連後,在左側導覽列中單擊 視圖 標籤可查看視圖列表。在視圖列表的右上方,單擊+建立視圖,或在頂部導覽列中單擊 建立 以建立所需對象。
在 基本資料 中,輸入 視圖名稱 並選擇 檢查項。
視圖名稱:為視圖指定一個名稱。
檢查項:檢查項是對寫入資料的約束檢查,OceanBase Oracle 模式下支援唯讀。預設值:無。

完成基本資料的指定後,單擊頁簽左下角的 確定 按鈕,完成當前步驟。
設定基本資料完成後,可以直接單擊頁面下方的 下一步:確認 SQL 按鈕進入第四步 確認 SQL,或可以按需進入第二步進行基表選擇的操作。
步驟二:選擇基表
指定基本資料後,可按需繼續進行第二步基表選擇的操作,該步驟可跳過。
在 基表選擇 頁簽中,左側的列表按 Schema > 庫 > 表 / 視圖的層級關係展示了可被選擇的基表,列表支援搜尋。在基表列表中選中目標表或視圖,單擊列表旁的添加按鈕 > 添加選中的表或視圖到頁簽右側的表操作區中。

在表操作區中,可對選擇的基表進行以下操作:
資訊項 | 說明 |
設定別名 | 為選中的基表設定一個別名,可選操作。在表操作區中單擊表名後的 <別名> 標籤在文字框中輸入別名。 |
設定關聯關係 | 表操作區中存在兩個或兩個以上的表時可通過下拉框選擇表與表之間的關聯關係,預設值為 JOIN,最後一張表無需設定關聯關係。單擊別名標籤後的下拉式清單標籤 |
調整關聯順序 | 可直接在表操作區中拖動選擇的基表進行順序的調整。每次調整,變更為最後一張表的關聯關係將被清空。 |
刪除基表 | 在表操作區中單擊每張表後的刪除按鈕,可將該表從表操作區中刪除。每次刪除,變更為最後一張表的關聯關係將被清空。 |
完成基表的選擇和設定後,單擊頁簽左下角的確定按鈕,完成當前步驟。
步驟三:選擇欄位
完成基表選擇後,可進行第三步欄位選擇的操作。如已跳過第二步基表選擇將無法進列欄位選擇。
在 欄位選擇 頁簽中,左側的列表按 Schema > 庫 > 表 / 視圖的層級關係展示了在第二步被選擇的基表所包含的欄位,支援搜尋欄位。在欄位列表中選中目標欄位,單擊列表旁的添加按鈕 > 添加選中的欄位到頁簽右側的欄位操作區中。

在欄位操作區中,可對選擇的欄位進行以下操作:
資訊項 | 說明 |
設定別名 | 為選中的欄位設定一個別名,可選操作。在欄位操作區中單擊欄位名後的 <別名> 標籤在文字框中輸入別名。 |
調整關聯順序 | 可直接在欄位操作區中拖動選擇的欄位進行順序的調整。 |
刪除欄位 | 在欄位操作區中單擊每個欄位後的刪除按鈕,可從欄位操作區中刪除該欄位。 |
自訂欄位 | 單擊欄位操作區右上方的 +自訂 標籤會在欄位操作區中添加一個欄位,使用者需要為新增的欄位指定欄位名稱和別名。 |
完成欄位的選擇和設定後,單擊頁簽左下角的 確定 按鈕,完成當前步驟。
步驟四:確認 SQL
完成上述所有資訊的指定後,單擊頁面上 下一步:確認 SQL 按鈕以進入語句編輯頁面。

在語句編輯頁面中會根據 基本資料、基表選擇 和 欄位選擇 頁簽中指定的資訊產生對應的視圖定義語句。當包含 2 個以上表時,需要根據表之間的關聯關係和邏輯條件等補齊語句。補齊視圖建立語句後,單擊頁面右上方的 建立 按鈕,完成視圖的建立。
使用者可以在 SQL 建立確認頁面編輯建立的視圖語句。文法格式如下:
CREATE VIEW view_name AS
SELECT
column1,
column2.....
FROM
table_name
WHERE
[condition];
同時,在編輯頁面的工具列中提供了以下功能鍵:
功能 | 說明 |
格式化 | 單擊該按鈕對選中的 SQL 陳述式或當前 SQL 視窗中的所有 SQL 陳述式進行統一的格式化(縮排、換行和高亮關鍵字等操作)。 |
尋找/替換 | 在尋找框內輸入內容以對指令碼進行檢索,尋找後可在替換框內輸入內容以對尋找內容進行替換。 |
撤銷 | 指令碼回退到上一步操作執行的結果。 |
重做 | 執行 撤銷 操作後,對指令碼重新執行撤銷前的操作。 |
大小寫 | 提供 全部大寫、全部小寫 和 首字母大寫 三種效果,為指令碼中選中的語句轉換為對應形式。 |
縮排 | 提供 添加縮排 和 刪除縮排 兩種效果,為指令碼中選中的語句添加或刪除包含的縮排。 |
注釋 | 提供 添加註釋 和 刪除注釋 兩種效果,指令碼中選中的語句轉換為注釋或轉換為 SQL 陳述式。 |
IN 值轉化 | 可以將如 A B 的格式轉化為 ('A','B') 的格式。 |
上一步 | 返回 建立視圖 頁面,使用者可以繼續編輯或修改 基本資料、基表選擇 和 欄位選擇 頁簽中的指定的值。 |
步驟五:完成建立視圖
單擊 建立,完成建立視圖後,可以如同查詢表對象一樣,使用SELECT語句查詢使用者視圖。

文法格式:
SELECT
column1,
column2.....
FROM
table_name;
樣本:
SELECT `name`, `budget`, `department_name` FROM `salary`;

進行選擇,可選 JOIN、INNER JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN、FULL JOIN、UNION、UNION ALL、INTERSECT、MINUS、LEFT OUTER JOIN、RIGHT OUTER JOIN 和 FULL OUTER JOIN 等關聯關係。