---
title: "新建表 - 开发者中心 ODC V4.4.2 | OceanBase 文档中心"
description: 新建表 OceanBase 开发者中心（OceanBase Developer Center，ODC）支持可视化方式创建表。本文档旨在介绍如何使用 ODC 创建表。 背景信息 逻辑表 ODC V4.3.2 及之后的版本支持将多个（或单个）物理库配置成一个逻辑库并配置逻辑表，以查询和管理复杂、庞大的分库与分表。详情请参…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 4.4.2

# 新建表

更新时间：2026-04-07 10:55:47

[编辑](https://github.com/oceanbase/odc-doc/edit/V4.4.2/zh-CN/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table.md)  

OceanBase 开发者中心（OceanBase Developer Center，ODC）支持可视化方式创建表。本文档旨在介绍如何使用 ODC 创建表。

## 背景信息

### 逻辑表

ODC V4.3.2 及之后的版本支持将多个（或单个）物理库配置成一个逻辑库并配置逻辑表，以查询和管理复杂、庞大的分库与分表。详情请参见 [逻辑库管理](https://www.oceanbase.com/docs/common-odc-1000000005551486)。

#### 说明

如无逻辑库权限，您可以通过项目/工单中的 **申请库权限** 申请逻辑库权限。

#### 逻辑表表达式规则

| **规则类型** | **规则名称** | **举例说明** |
| **简单规则** | 自然序 | `db.test_[0-7]`：创建 8 张表。 |
| 自然对齐序 | - `db.test_[00-07]`：创建 8 张表，表名两位对齐。 - `db.test_[000-007]`：创建 8 张表，表名三位对齐。 - `db.test_[0000-0007]`：创建 8 张表，表名四位对齐。 |
| 跳跃前缀自然（不前缀补 0）对齐序 | `db.test_[0-8:2]`：2 为步长，创建 5 张表（`db.test_0`、`db.test_2`、`db.test_4`、`db.test_6`、`db.test_8`）。 |
| 跳跃前缀长度补 0 对齐序 | `db.test_[00-07:3]`：步长为 3，创建 3 张表（`db.test_00`、`db.test_03`、`db.test_06`） 。 |
| 规则居中序 | `db.test_[00-31]_t`：后缀影子表。 |
| **多级规则** | 日期类序 | `db.test_[01-12]_[01-31]`：创建 12 个月，每个月 31 天的表，即 12*31 张表。 |
| 跳跃二级序 | `db.test_[01-12:2]_[01-31:2]`：创建单月（1,3,5,.....11），每个月奇数天的表 (1,3,5,.....31)，即 6*16 张表。 |
| **数据库及联表规则** | 相同名称规则 | `db_[00-31].test`：在 `db_00` 到 `db_31` 数据库下都定义 `test` 表。 |
| 平均分配规则 | `db_[00-31].test[0000-1023]`：在 `db_00` 到 `db_31` 数据库下一共存在 1024 张表。 |
| **枚举规则** | 简单枚举 | `db.test_[1,3,6,8,9]`：在指定的分库中创建 5 张表。 |
| 复杂枚举规则 | 通过多个表达式，将表平均分配到指定的分库中：`db.test_[1,3,6,8,9]`,`db.test_[2,4,5,7,10]` |
| **数据库及枚举** | 数据库下创建相同的规则 | `db_[00-31].test_[[00-31]]`：在 32 个数据库下，各创建 `test_[00-31]` 的表。 |
| 数据库下枚举 | `db_01.test_[1,2,4,6,7],db_02.test_[2,3,5,7,9],db_03.test_[1,4,6,7,9]`：在 3 个数据库下各创建 5 张表。 |
| 数据库下不均等表 | `db_01.test_[1-7],db_02.test_[10-15]`：在数据库 `db_01` 下创建 7 张表，在数据库 `db_02` 下创建 6 张表。 |

### 新建内部表

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/900.database-objects/1.web-odc-table-objects/1.png)

如上图所示，创建内部表包含以下 7 个步骤：

1. 指定基本信息。
 2. 设置列。
 3. 设置索引。
 4. 设置约束。
 5. 设置分区规则。
 6. 确认 SQL。
 7. 完成新建表。

### 新建外表

外表是指一个逻辑上的表对象，其对应的实际数据存储位置并不在数据库内部，而是存储于外部存储服务中。具体请参见 [关于外表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576952)。

ODC V4.3.3 及之后的版本支持在 SQL 窗口中执行 SQL 命令创建外部表，以通过指定的文件路径将外部文件映射到 ODC 数据库中，您可以从资源树列表中查看已创建的外部表。具体请参见 [OceanBase 创建外表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574064)。

ODC 支持使用 `CREATE EXTERNAL TABLE` 语句创建外表。

#### 注意

- 外表仅支持只读，可用于查询语句，但不能执行 DML 操作。
 - 通过本地文件在 ODC 中创建外表前，您需要设置 `secure_file_priv` 变量。该设置仅支持通过本地 Unix Socket 连接 OceanBase 数据库，ODC 目前不支持此类连接方式，您需要通过 [OBClient 工具配置](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015981)。

1. 准备外部文件。
 2. 在 ODC SQL 创建中执行 SQL 命令创建外表。
 3. 资源树中查看创建的外表。

## 操作步骤

### 新建内部表

本章节以创建表为例，介绍如何在 SQL 窗口中创建表 employee 到数据库 odc_test 中，员工表中包含员工工号（emp_no）、员工生日（birthday）、员工姓名（name）和员工性别（gender）。

#### 说明

文中所使用的均为示例数据，您可根据实际情况对数据进行替换。

     新建物理库表   新建逻辑库表

#### 步骤一：指定基本信息

1. 登录数据库并进入 SQL 开发窗口后，在左侧导航栏中单击 **表** 标签可查看表列表。在表列表的右上角，单击 **+** 以创建表对象。
 2. 在 **基本信息** 中，输入 **表名称**、选择 **存储模式** 和表的 **描述**。

   ![step 1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/step%201.png)

   #### 说明

      - 在 MySQL 模式下，同时需要选择默认字符集和默认排序规则。
      - 完成指定基本信息并切换至设置列步骤后，表示确认提交基本信息。
      - 仅 OceanBase V4.3.0 及之后的版本支持配置[列存](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050875)。

#### 步骤二：设置列

#### 说明

ODC V4.2.3 及之后的版本支持创建包含 [OceanBase MySQL](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221534)/[MySQL](https://dev.mysql.com/doc/refman/8.0/en/spatial-type-overview.html) 空间数据类型（GIS）字段（列）的表。

如下图所示，添加一列时需指定以下信息：

![step 2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/step%202.png)

#### 说明

- 复制行后，可选中某行并通过快捷键 Command + V / Ctrl + V 进行粘贴。
 - 页面底部的辅助编辑区域会显示所选中列的相关提示信息。
 - 基本信息和列为必填项，其它为选填项，填写基本信息和列后，可以直接提交并确认 SQL 新建表。

#### 步骤三：设置索引

当表中包含大量数据，可以使用索引更快速的查询数据。索引是表中对某一列或多个列的值进行预排序的数据结构。通过使用索引，可以直接定位到符合条件的记录。

如下图所示，需指定以下信息：

![step 3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/440/step-3.png)

#### 步骤四：设置约束

约束用于规定表中的数据规则。如果存在违反约束的数据行为，该行为会被约束终止。

![step 4](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/step%204.png)

ODC 中支持设置的表级约束包括以下 4 种：

- **主键约束**：定义一个主键来唯一标识表中的每一行数据。主键约束可为一个字段或是一组字段，一张表中只能设置一个主键约束，且设置完成后不支持编辑。
 - **唯一约束**：保证在一个字段或者一组字段里的数据在表中是唯一的，一张表中可设置多个唯一约束。
 - **外键约束**：在两个表的数据之间建立连接（可为一列或多列），旨在保持关联表之间数据的一致性、完整性。设置完成后不支持新增和编辑。
 - **检查约束**：在编辑数据库数据时，按照设置的检查规则进行校验，校验通过才允许数据修改操作。

#### 步骤五：设置分区规则

![step 5](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/step%205.png)

当表中包含大量数据时，可以对表进行分区。表进行分区后，表中的数据会存放到多个表空间，每次查询数据时不会扫描整张表。ODC V4.3.3 及之后的版本支持展示二级分区。

- OceanBase 中 MySQL 模式支持六种分区方法**：key**、**Hash**、**Range**、**Range Columns**、**List** 和 **List Columns** 。
 - Oracle 模式支持三种分区方法**：List**、**Range** 和 **Hash** 。

#### 步骤六：确认 SQL

![step 6](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/step%206.png)

单击 **提交** 后，在 SQL 确认页面查看语句，支持 **SQL 检查** 和 **格式化** 语句以方便查看。

语法格式如下：

```sql
CREATE TABLE table_name (column_name column_type, column_name column_type,.......);

```

参数说明：

| 参数 | 说明 |
| --- | --- |
| CREATE TABLE | 用于创建给定名称的表，必须拥有表 CREATE 的权限。 |
| table_name | 创建表的名称，表名称必须符合标识符命名规则。 |
| column_name column_type | 指定数据表中每个列（字段）的名称和数据类型，如果创建多个列，需要用逗号隔开。 |

#### 步骤七：完成新建表

单击 **执行** ，完成新建表后，会在左侧导航栏的表列表中出现新建的 employee 表。

![step 7](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/420/900.database-objects/1.web-odc-table-objects/2.png)

#### 说明

在左侧导航栏的表列表中，单击表名右侧的更多图标，通过弹出的管理操作列表（包括 **查看表结构**、**查看表数据**、 **导入**、 **导出**、 **下载**、 **模拟数据**、**打开 SQL 窗口**、**复制**、**删除** 和 **刷新**），可快速管理和操作目标对象。表对象具体操作，请参见 [常用功能简介](https://www.oceanbase.com/docs/common-odc-1000000005551378)。

支持使用关键字 `SELECT` 查询新建的表数据。

语法格式：

```sql
SELECT
 column_name,
 column_name
FROM
 table_name [WHERE Clause] [LIMIT N] [ OFFSET M]

```

参数说明：

| 参数 | 说明 |
| --- | --- |
| SELECT | SELECT 命令可以读取一条或者多条记录。 |
| column_name | 指定查列名称。 使用星号（*）默认查询所有列信息。 |
| WHERE | 条件语句。 |
| LIMIT | 设定返回的记录数。 |
| OFFSET | 指定 SELECT 语句开始查询的数据偏移量。 默认情况下偏移量为 0。 |

示例：

```sql
SELECT `emp_no`, `birthdate`, `name`, `gender` FROM `employee`;

```

![7.2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/430/500.sql-development/700.database-objects/100.web-odc-table-objects/200.web-odc-create-a-table/7.2.png)

#### 步骤一：指定基本信息

1. 登录数据库并进入 SQL 开发窗口后，在左侧导航栏中单击 **表** 标签可查看表列表。在表列表的右上角，单击 **+** 以创建表对象。

    ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical1.png)
 2. 在 **基本信息** 中，输入 **逻辑表表达式** 和逻辑表的 **描述**等信息。

    ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical2.png)  

   #### 注意

      - 逻辑表表达式中须包含库名。例如：`odc_test.employee[00-09]`，其中 `odc_test` 为库名，`employee` 为表名，`[00-09]` 为共创建 10 张表。
      - 生成的逻辑表名默认为物理表名非序号部分的共同字符串。例如，物理表名分别为 `db.test_0`, `db.test_1`, `db.test_2`, `db.test_3`，则生成的逻辑表名为 `test`。逻辑表表达式为 `db.test_[0-3]`。具体请参见本文中的 **逻辑表表达式规则**。

#### 步骤二：设置列

如下图所示，添加一列时需指定以下信息：

 ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical3.png)  

 ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical4.png)

 ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical5.png)

#### 步骤五：设置分区规则

 ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/432/500.sql-development/100.web-odc-table-objects/200.web-odc-create-a-table/logical6.png)

当表中包含大量数据时，可以对表进行分区。表进行分区后，表中的数据会存放到多个表空间，每次查询数据时不会扫描整张表。

#### 步骤六：确认 SQL

 ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/434/500.sql-development/700.database-objects/100.web-odc-table-objects/web-odc-create-a-table-7.png)

单击 **提交** 后，在 SQL 确认页面查看语句，支持 **格式化** 语句以方便查看。

语法格式如下：

```

参数说明：

### 新建外表

本章节以创建存储服务 OSS 外部表 `employee` 为例，介绍如何在 SQL 窗口中创建外部表 `employee` 到数据库 odc_test 中，您可以将 OSS 上指定的文件路径映射到 ODC 数据库 odc_test 中。

1. 准备外部文件。

      1. 在 [OSS 管理控制台](https://help.aliyun.com/zh/oss/user-guide/use-alibaba-cloud-accounts-to-log-on-to-the-oss-console) 上新建目录 `external table`。

         ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/ex1.png)
      2. 上传文件 `employee.csv` 到目录 `external table` 中。

         ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/ex2.png)
      3. 获取外表 `employee` 存放路径：`https://ob*********.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/external%20table/employee.csv`。

         ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/ex3.png)
 2. 在 ODC SQL 窗口中，执行以下 SQL 命令创建外表 `employee`。

    ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/ex4.png)

   ```sql
   CREATE EXTERNAL TABLE `employee` (
      `emp_no` int(120),
      `birthday` date,
      `name` varchar(120)
   )
      LOCATION = 'ob*********.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/employee/employee.csv'
      FORMAT = (
         TYPE = 'CSV'
         FIELD_DELIMITER = ','
         FIELD_OPTIONALLY_ENCLOSED_BY ='"'
         ENCODING = 'utf8mb4'
         )
      PATTERN = 'employee.csv';

   ```

      - `LOCATION` 选项用于指定外表文件存放的路径。

            - 本地 Location 格式：`LOCATION = '[file://] local_file_path'`。对于使用本地 `Location` 格式的场景，需设置系统变量 `secure_file_priv` 配置可以访问的路径。更多信息，请参见 [secure_file_priv](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576585)。
            - 远程 Location 格式：`LOCATION = '{oss|cos|S3}://$ACCESS_ID:$ACCESS_KEY@$HOST/remote_file_path'`，`$ACCESS_ID`、`$ACCESS_KEY` 和 `$HOST` 为访问阿里云 OSS、腾讯云 COS 和 S3 所需配置的访问信息。
      - `FORMAT = ( TYPE = 'CSV'... )` 用于指定外部文件的格式为 CSV 类型。参数如下：

            - `TYPE`：指定外部文件的类型。
            - `LINE_DELIMITER`：指定 CSV 文件的行分隔符。默认值为 `LINE_DELIMITER='\n'`。
            - `FIELD_DELIMITER`：指定 CSV 文件的列分隔符。默认值为 `FIELD_DELIMITER='\t'`。
            - `ESCAPE`：指定 CSV 文件的转义符号，只能为 1 个字节。默认值为 `ESCAPE ='\'`。
            - `FIELD_OPTIONALLY_ENCLOSED_BY`：指定 CSV 文件中包裹字段值的符号。默认值为空。
            - `ENCODING`：指定文件的字符集编码格式，当前 MySQL 模式支持的所有字符集请参见 [字符集](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001578326)。如果不指定，默认值为 UTF8MB4。
            - `NULL_IF`：指定被当作 NULL 处理的字符串。默认值为空。
            - `SKIP_HEADER`：跳过文件头，并指定跳过的行数。
            - `SKIP_BLANK_LINES`：指定是否跳过空白行。默认值为 `FALSE`，表示不跳过空白的行。
            - `TRIM_SPACE`：指定是否删除文件中字段的头部和尾部空格。默认值为 `FALSE`，表示不删除文件中字段头尾的空格。
            - `EMPTY_FIELD_AS_NULL`：指定是否将空字符串当作 `NULL` 处理。默认值为 `FALSE`，表示不将空字符串当做 `NULL` 处理。
      - `PATTERN` 选项用于指定一个正则模式串，用于过滤 `LOCATION` 目录下的文件。对于每个 `LOCATION` 目录下的文件路径，如果能够匹配该模式串，外表会访问这个文件，否则外表会跳过这个文件。如果不指定该参数，则默认可以访问 `LOCATION` 目录下的所有文件。外表会将 `LOCATION` 指定路径下满足 `PATTERN` 的文件列表保存在数据库系统表中，外表扫描时会根据这个列表来访问外部的文件。
 3. 在左侧导航栏的外表列表中查看 employee 表。

    ![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/433/500.sql-development/700.database-objects/100.web-odc-table-objects/ex5.png)

## 相关信息

- [新建视图](https://www.oceanbase.com/docs/common-odc-1000000005551547)
 - [新建函数](https://www.oceanbase.com/docs/common-odc-1000000005551530)
 - [新建存储过程](https://www.oceanbase.com/docs/common-odc-1000000005551537)
 - [新建序列](https://www.oceanbase.com/docs/common-odc-1000000005551533)
 - [新建程序包](https://www.oceanbase.com/docs/common-odc-1000000005551527)
 - [新建触发器](https://www.oceanbase.com/docs/common-odc-1000000005551535)
 - [新建类型](https://www.oceanbase.com/docs/common-odc-1000000005551541)
 - [新建同义词](https://www.oceanbase.com/docs/common-odc-1000000005551551)

 上一篇 下一篇 ![有帮助](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) 咨询热线
