---
title: "CREATE VIEW - OceanBase 数据库 V4.2.1 | OceanBase 文档中心"
description: CREATE VIEW 描述 该语句用于创建视图。 使用限制及注意事项 视图在数据库中实际上并不是以表的形式存在，视图是作为在 CREATE VIEW 语句中指定的 SELECT 语句的结果而派生出来的，每次使用时视图就会派生。 如果 FROM 子句中引用了两个或多个表或视图，则称该视图为连接视图（Join View…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.2.1 LTS

# CREATE VIEW

更新时间：2026-07-15 20:56:55

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.1/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/2900.create-view-of-mysql-mode.md)  

## 描述

该语句用于创建视图。

## 使用限制及注意事项

- 视图在数据库中实际上并不是以表的形式存在，视图是作为在 `CREATE VIEW` 语句中指定的 `SELECT` 语句的结果而派生出来的，每次使用时视图就会派生。
 - 如果 `FROM` 子句中引用了两个或多个表或视图，则称该视图为连接视图（Join View）。一个可更新的连接视图，也称为可修改的连接视图，涉及两个或多个基表或视图，并允许 DML 操作。可更新的视图不受限于 `WITH READ ONLY` 子句。
 - 为确保视图的可更新性，必须满足一系列特定条件。其中一项普遍适用的规则是，在对连接视图进行 `INSERT`、`UPDATE` 或 `DELETE` 操作时，操作只能针对单个基表进行修改。

## 权限要求

执行 `CREATE VIEW` 语句，需要当前用户拥有 `CREATE VIEW` 权限。有关 OceanBase 数据库权限的详细介绍，请参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000220876)。

## 语法

```sql
CREATE
    [OR REPLACE]
    VIEW view_name[(column_name_list)]
    AS select_stmt
    [check_option];

column_name_list:
    column_name [, column_name ...]

check_option:
    WITH CHECK OPTION
    | WITH CASCADED CHECK OPTION
    | WITH LOCAL CHECK OPTION

```

## 参数解释

| **参数** | **描述** |
| --- | --- |
| OR REPLACE | 可选项，表示如果要创建的视图名称已存在，则使用新的定义重新创建视图，即替换已有的视图。 |
| view_name | 指定视图名。 |
| column_name_list | 可选项，指定视图的列名列表。如果未指定列名列表，由 `SELECT` 语句检索的列名将用作视图列名。`SELECT` 语句检索的列可以是对表列的简单引用，也可以是使用函数、常量值、运算符等的表达式。视图列名有以下限制：   - 必须具有唯一的列名，不得有重复。 - `column_name_list` 中的名称数目必须等于 `SELECT`语句检索的列数。 |
| select_stmt | 用于定义视图的查询（`SELECT`）语句。它给出了视图的定义，可以从基表或其他视图进行选择。有关查询语句的具体结构和选项信息，参见 [SELECT 语句](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222205)。 |
| check_option | 可选项，指定视图的检查范围，用来限制对视图的插入、更新操作。检查范围的详细介绍可参见下文 [check_option](#check_option)。 |

### check_option

`WITH CHECK OPTION`：是一种用于创建视图的语法，它用于确保插入或更新的数据满足视图的定义条件。在 MySQL 模式中，`WITH CHECK OPTION` 子句还可以与 `LOCAL/CASCADED` 关键字一起使用，以进一步指定数据检查的范围。

- `WITH CASCADED CHECK OPTION`：对本视图进行检查，并递归地对引用的所有视图进行检查。
 - `WITH LOCAL CHECK OPTION`：对本视图进行检查，是否对引用的视图进行检查取决于被引用视图的定义。

## 示例

1. 创建表 `tbl1`。

   ```sql
   CREATE TABLE tbl1 (col1 INT, col2 INT);

   ```
 2. 基于表 `tbl1` 创建视图 `v1`。

   ```sql
   CREATE VIEW v1
       AS SELECT * FROM tbl1 WHERE col2 < 2
       WITH CHECK OPTION;

   ```
 3. 使用 `LOCAL CHECK OPTION` 语法，基于视图 `v1` 创建视图 `v2`。

   ```sql
   CREATE VIEW v2
       AS SELECT * FROM v1 WHERE col2 > 0
       WITH LOCAL CHECK OPTION;

   ```
 4. 使用 `CASCADED CHECK OPTION` 语法，基于视图 `v1` 创建视图 `v3`。

   ```sql
   CREATE VIEW v3
       AS SELECT * FROM v1 WHERE col2 > 0
       WITH CASCADED CHECK OPTION;

   ```

## 相关文档

- [管理视图](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218616)
 - [ALTER VIEW](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221398)
 - [DROP VIEW](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221411)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
