阅读220 返回首页    go iPhone_iPad_Mac_手机_平板_苹果apple


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-阿里云