閱讀220 返回首頁    go 阿裏雲


CREATE VIEW__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲

格式

CREATE [OR REPLACE] VIEW viewname
 [(column_list)] AS select_stmt;

創建視圖語句,如果指定了OR REPLACE子句,該語句能夠替換已有的視圖。

select_stmt是一種SELECT語句。它給出了視圖的定義。該語句可以從基表或其他視圖進行選擇。

視圖必須具有唯一的列名,不得有重複,就像基表那樣。默認情況下,由SELECT語句檢索的列名將用作視圖列名。要想為視圖列定義明確的名稱,可使用可選的column_list子句,列出由逗號隔開的ID。column_list中的名稱數目必須等於SELECT語句檢索的列數。

SELECT語句檢索的列可以是對表列的簡單引用。也可以是使用函數、常量值、操作符等的表達式。

視圖在數據庫中實際上並不是以表的形式存在。每次使用時它們就會派生。視圖是作為在CREATE VIEW語句中指定的SELECT語句的結果而派生出來的。

OceanBase 1.0隻支持不可更新視圖。

示例

創建基本表和視圖:

Oceanbase>create table test(a int, b int);
createQuery OK, 0 rows affected (1.23 sec)

Oceanbase>create view test_view(va, vb) as select a, a+b from test;
Query OK, 0 rows affected (0.04 sec)

Oceanbase>show create view test_view;
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| View      | Create View                                                                                                                                    | character_set_client | collation_connection |
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| test_view | CREATE VIEW `test_view` AS select `ocp_test`.`test`.`a` AS `va`,(`ocp_test`.`test`.`a` + `ocp_test`.`test`.`b`) AS `vb` from `ocp_test`.`test` | utf8mb4              | utf8mb4_general_ci   |
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
1 row in set (0.01 sec)

向基本表中插入數據,並查看視圖數據:

Oceanbase>insert into test values(1,2),(2,3),(3,4);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

Oceanbase>select * from test_view;
+------+------+
| va   | vb   |
+------+------+
|    1 |    3 |
|    2 |    5 |
|    3 |    7 |
+------+------+
3 rows in set (0.01 sec)

不支持更新視圖:

Oceanbase>update test_view set va = 5;
ERROR 4016 (HY000): view table just supports select

最後更新:2016-11-24 11:23:47

  上一篇:go DROP INDEX__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
  下一篇:go ALTER VIEW__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲