OceanBase 开发者中心(OceanBase Developer Center,ODC)支持可视化方式创建表。本文档旨在介绍如何使用 ODC 创建表。
背景信息
逻辑表
ODC V4.3.2 及之后的版本支持将多个(或单个)物理库配置成一个逻辑库并配置逻辑表,以查询和管理复杂、庞大的分库与分表。详情请参见逻辑库变更管理。
如无逻辑库权限,您可以通过项目/工单中的 申请库权限 申请逻辑库权限。
逻辑表表达式规则
规则类型 | 规则名称 | 举例说明 |
简单规则 | 自然序 |
|
自然对齐序 |
| |
跳跃前缀自然(不前缀补 0)对齐序 |
| |
跳跃前缀长度补 0 对齐序 |
| |
规则居中序 |
| |
多级规则 | 日期类序 |
|
跳跃二级序 |
| |
数据库及联表规则 | 相同名称规则 |
|
平均分配规则 |
| |
枚举规则 | 简单枚举 |
|
复杂枚举规则 | 通过多个表达式,将表平均分配到指定的分库中: | |
数据库及枚举 | 数据库下创建相同的规则 |
|
数据库下枚举 |
| |
数据库下不均等表 |
|
新建表步骤
如上图所示,创建表包含以下 7 个步骤:
指定基本信息。
设置列。
设置索引(可选)。
设置约束(可选)。
设置分区规则(可选)。
确认 SQL。
完成新建表。
本文档以创建表为例,介绍如何在 SQL 窗口中创建表 employee 到数据库 odc_test 中,员工表中包含员工工号(emp_no)、员工生日(birthday)、员工姓名(name)和员工性别(gender)。
文中所使用的均为示例数据,您可根据实际情况对数据进行替换。
操作步骤
新建物理库表
步骤一:指定基本信息
登录数据库并进入 SQL 开发窗口后,在左侧导航栏中单击 表 标签可查看表列表。在表列表的右上角,单击 + 以创建表对象。
在 基本信息 中,输入 表名称、选择 存储模式 和表的 描述。
说明在 MySQL 模式下,同时需要选择默认字符集和默认排序规则。
完成指定基本信息并切换至设置列步骤后,表示确认提交基本信息。
步骤二:设置列
ODC V4.2.3 及之后的版本支持创建包含OceanBase MySQL/MySQL空间数据类型(GIS)字段(列)的表。
如下图所示,添加一列时需指定以下信息:
设置列页面提供 3 种功能操作:
功能项 | 说明 |
工具栏操作 | 通过列页面顶部的工具栏可添加和删除列。 |
单击行序号 |
|
鼠标右键操作 | 右键单击鼠标选中整行,进行复制行 / 向下移动一行。 |
MySQL 模式下,每个表仅允许设置一个自增字段(列)。
当一个字段(列)设置为自增后,其余字段(列)不可勾选,需取消勾选后,才可设置其它字段(列)为自增字段(列)。
如果已勾选虚拟列,则必须填写表达式。
在创建虚拟列时需要定义虚拟列依赖的表达式,虚拟列包含 Virtual Column 和 Stored Column,仅在使用时会根据表达式计算出虚拟列的值,因此在向表中插入数据的时候,不能为虚拟列指定要插入的值。
复制行后,可选中某行并通过快捷键 Command + V / Ctrl + V 进行粘贴。
页面底部的辅助编辑区域会显示所选中列的相关提示信息。
基本信息和列为必填项,其它为选填项,填写基本信息和列后,可以直接提交并确认 SQL 新建表。
步骤三:设置索引
当表中包含大量数据,可以使用索引更快速的查询数据。索引是表中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以直接定位到符合条件的记录。
如下图所示,需指定以下信息:
步骤四:设置约束
约束用于规定表中的数据规则。如果存在违反约束的数据行为,该行为会被约束终止。
ODC 中支持设置的表级约束包括以下 4 种:
主键约束:定义一个主键来唯一标识表中的每一行数据。主键约束可为一个字段或是一组字段,一张表中只能设置一个主键约束,且设置完成后不支持编辑。
唯一约束:保证在一个字段或者一组字段里的数据在表中是唯一的,一张表中可设置多个唯一约束。
外键约束:在两个表的数据之间建立连接(可为一列或多列),旨在保持关联表之间数据的一致性、完整性。设置完成后不支持新增和编辑。
检查约束:在编辑数据库数据时,按照设置的检查规则进行校验,校验通过才允许数据修改操作。
OceanBase 暂不支持 SET NULL 动作。
相关语法,请参考OceanBase 或 MySQL/Oracle 官网文档。
步骤五:设置分区规则
当表中包含大量数据时,可以对表进行分区。表进行分区后,表中的数据会存放到多个表空间,每次查询数据时不会扫描整张表。
OceanBase 中 MySQL 模式支持六种分区方法:key、Hash、Range、Range Columns、List 和 List Columns。
Oracle 模式支持三种分区方法:List、Range 和 Hash。
步骤六:确认 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 表。
在左侧导航栏的表列表中,单击表名右侧的更多图标,通过弹出的管理操作列表(包括 查看表结构、查看表数据、导入、导出、下载、模拟数据、打开 SQL 窗口、复制、删除和刷新),可快速管理和操作目标对象。
支持使用关键字SELECT
查询新建的表数据。
语法格式:
SELECT
column_name,
column_name
FROM
table_name [WHERE Clause] [LIMIT N] [ OFFSET M]
参数说明:
参数 | 说明 |
SELECT | SELECT 命令可以读取一条或者多条记录。 |
column_name | 指定查列名称。 使用星号(*)默认查询所有列信息。 |
WHERE | 条件语句。 |
LIMIT | 设定返回的记录数。 |
OFFSET | 指定 SELECT 语句开始查询的数据偏移量。 默认情况下偏移量为 0。 |
示例:
SELECT `emp_no`, `birthdate`, `name`, `gender` FROM `employee`;
新建逻辑库表
步骤一:指定基本信息
登录数据库并进入 SQL 开发窗口后,在左侧导航栏中单击 表 标签可查看表列表。在表列表的右上角,单击+以创建表对象。
在 基本信息 中,输入 逻辑表表达式 和逻辑表的 描述 等信息。
重要逻辑表表达式中须包含库名。例如:
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]
。具体请参见本文中的 逻辑表表达式规则。
步骤二:设置列
如下图所示,添加一列时需指定以下信息:
复制行后,可选中某行并通过快捷键 Command + V / Ctrl + V 进行粘贴。
页面底部的辅助编辑区域会显示所选中列的相关提示信息。
基本信息和列为必填项,其它为选填项,填写基本信息和列后,可以直接提交并确认 SQL 新建表。
步骤三:设置索引
当表中包含大量数据,可以使用索引更快速的查询数据。索引是表中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以直接定位到符合条件的记录。
如下图所示,需指定以下信息:
步骤四:设置约束
约束用于规定表中的数据规则。如果存在违反约束的数据行为,该行为会被约束终止。
ODC 中支持设置的表级约束包括以下 4 种:
主键约束:定义一个主键来唯一标识表中的每一行数据。主键约束可为一个字段或是一组字段,一张表中只能设置一个主键约束,且设置完成后不支持编辑。
唯一约束:保证在一个字段或者一组字段里的数据在表中是唯一的,一张表中可设置多个唯一约束。
外键约束:在两个表的数据之间建立连接(可为一列或多列),旨在保持关联表之间数据的一致性、完整性。设置完成后不支持新增和编辑。
检查约束:在编辑数据库数据时,按照设置的检查规则进行校验,校验通过才允许数据修改操作。
步骤五:设置分区规则
当表中包含大量数据时,可以对表进行分区。表进行分区后,表中的数据会存放到多个表空间,每次查询数据时不会扫描整张表。
OceanBase 中 MySQL 模式支持六种分区方法:key、Hash、Range、Range Columns、List和 List Columns。
Oracle 模式支持三种分区方法:List、Range 和 Hash。
步骤六:确认 SQL
单击 提交 后,在 SQL 确认页面查看语句,支持 格式化 语句以方便查看。
语法格式如下:
CREATE TABLE table_name (column_name column_type, column_name column_type,.......);
参数说明:
参数 | 说明 |
CREATE TABLE | 用于创建给定名称的表,必须拥有表 CREATE 的权限。 |
table_name | 创建表的名称,表名称必须符合标识符命名规则。 |
column_name column_type | 指定数据表中每个列(字段)的名称和数据类型,如果创建多个列,需要用逗号隔开。 |
步骤七:完成新建表
单击 执行,完成新建表后,会在左侧导航栏的表列表中出现新建的 employee 表。