计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
更新时间:2023-03-17 GMT+08:00

概述

本节介绍如何创建普通表。

表是由数据库管理员维护的逻辑结构,由行和列组成。可以从数据角度,将表定义为数据定义的一部分。定义表之前,需首先定义数据库和模式,本节将介绍如何利用Data Studio创建表。执行如下步骤在数据库中定义表:

  1. 在“对象浏览器”窗格中,右键单击“普通表”,选择“创建普通表”。
  2. 定义基本表信息,如表名称、表类型等。详情请参见提供基本信息
  3. 定义列相关信息,如列名、数据类型模式、数据类型、列约束等。详情请参见定义列
  4. 选择表数据分布信息详情请参见选择数据分布类型需修改
  5. 为不同约束类型定义列约束。约束类型包含主键(PRIMARY KEY)、唯一(UNIQUE)、检查(CHECK)。详情请参见定义表约束
  6. 定义表索引信息,如索引名称、访问方法等。详情请参见定义索引

    在“SQL预览”页签,可以查看输入所自动生成的SQL查询。详情请参见SQL预览

提供基本信息

在模式中创建表时,当前模式将作为待创建表的模式。创建过程中,需要执行如下若干步骤。创建普通表时,需提供以下信息:

  1. 填写“表名”。“表名”指定要创建的表名称。

    选择“区分大小写”复选框可保存“表名”字段中输入的文本的大小写。例如,如果输入的表名称“Employee”,则表名将创建为“Employee”。

    创建表的模式名称显示在“用户模式”中。

  2. 从“表存储方式”中选择表存储方式。
  3. 选择“表类型”。“表类型”指定表类型。

    • 正常”:如指定为“正常”,则创建一个标准的表。
    • 非正常”:如指定为“非正常”,则创建一个无日志表。对无日志表写入数据时,将不记录到日志中,这样使无日志表的写入速度大大超过一般表的速度。尽管如此,无日志表也是不安全的:在冲突或异常关闭后,无日志表会被自动截断;另外,无日志表的内容不会被备份到备机,并且,创建无日志表的索引时,也不会自动录入日志。

  4. 选择选项:

    • 如不存在相同名称的表,勾选“如果不存在”,创建该表。
    • 勾选“带OIDS”,为新创建的表分配OID(对象标识符)。创建需要带OID的新表时,请选择该选项。
    • 选择“填充因子”表填充因子取值范围为10~100。默认值为100,表示完全填充。

    填充因子”指定为较小值时,“INSERT”操作仅填充表页面到指定的百分比。表页面预留的剩余空间,将用于更新该页面的行。这样使得“UPDATE”操作可以在和原页面相同的页面上,放置更新后的行内容,比放置在不同的页面上更加高效。对于从未更新过表项的表来说,完全填充是最好的选择。但是对于更新规模较大的表,较小填充因子更加合适。TOAST表不支持设置该参数。

  5. 在“设置表描述”框中填写表的简短描述。
  6. 提供完这些通用信息后,单击“下一步”定义表的列信息。

下表列出了“一般”中普通表支持的字段。

表1 支持的字段

字段

行存表

列存表

ORC表

表类型

x

如果不存在

带OIDS

x

x

填充因子

x

x

定义列

列定义了行中的信息单元,每一行为一个表项,每一列为应用于所有行的信息的分类。数据库添加表时,可以定义组成该数据库的列,列决定了表可以包含的数据类型。提供表的通用信息后,单击“”页签定义列清单,每一列包含名称、数据类型和其他可选属性。

仅可在普通表中的已有列上进行如下操作:

执行以下步骤定义表的列:

  1. 在“列名”区域填写列名称。“列名”指新表中待创建的列的名称,列名在表中唯一。

    勾选“区分大小写”复选框可保留“列名”字段中输入的文本的大小写。例如,如果输入的表名称为“Name”,则表名将创建为“Name”。

  2. 选择“阵列维度”。“阵列维度”指列的阵列尺寸。

    例如:如果某列的数组维度定义为integer [],该列数据会添加为单维数组。

    上表的marks列创建为单维数据,subject列创建为二维数据。

  3. 从“数据类型”中选择列的数据类型。例如,为整数值选择“bigint”。

    对于复杂的数据类型:

    • 从“模式数据类型”中选择模式。
    • 从“数据类型”中选择对应的数据类型。该列表显示所选模式的表和视图。

      用户无法选择自定义数据类型。

  4. 在“精度/大小”字段选择所输入数据的类型。仅当数据类型可以用精度/尺寸来定义时,该选项可选。
  5. 在“范围”字段选择输入的数据类型的范围。
  6. 根据需要在“列约束”区域选择如下约束:

    • 非空”:指该列不能包含空值。
    • 唯一”:指列可能仅包含唯一值。
    • 默认”:指定该列未定义值的情况下使用的默认值。
    • 检查”:指生成boolean结果的表达式,该结果中,新增行或更新行的操作需成功执行。

  7. 如果要在“创建普通表”对话框的“”页签添加列注释信息,则在“设置列描述(最多5000个字符)”文本框中进行输入,之后单击“添加”。此外,也支持通过单独的新增列窗口添加注释信息。完成之后,可以在普通表的属性窗口中查看该信息。
  8. 输入新增列的所有信息后,单击“添加”按钮也可以从清单中删除列或修改列顺序,定义完所有列后,单击“下一步”。

下表列出了“”中普通表支持的字段。

表2 支持的字段

字段

行存表

列存表

ORC表

阵列维度

x

x

模式数据类型

x

x

非空

默认

唯一

x

x

检查

x

x

移除列

执行以下步骤移除列:

  1. 选择要移除的列。
  2. 单击“删除”。

编辑列

执行以下步骤编辑列:

  1. 选择要编辑的列。
  2. 单击“编辑”。
  3. 编辑列的详细信息,单击“更新”保存更改。

    开始编辑列后,必须完成并保存更改才能进行其他操作。

移动列

可移动表格中列的位置。要移动某列,选中该列后单击“向上”或“向下”。

选择数据分布类型需修改

数据分布是指如何分布一个表或如何在多个数据节点间复制一个表。

分布类型如下表所示:

分布类型

说明

默认分布

分配默认分布类型。

REPLICATION

每一行复制到数据库集群的所有数据节点。

HASH

根据指定列的哈希值分布行。

RANGE

根据range值分布行。

LIST

根据list值分布行。

选择数据分布后,单击“下一步”。

下表列出了“数据分布”中普通表支持的选项。

表3 分布类型

分布类型

行存表

列存表

ORC表

默认分布

x

HASH

REPLICATION

x

定义表约束

创建约束为可选操作一个表有一个(且只能有一个)主键,建议创建主键。

在“约束类型”中可选择如下选项:

主键

主键是行的唯一标识,包含一列或者多个列。

一个表只可指定一个主键,作为列约束或表约束主键约束应命名一组列,该组列不同于同一表定义的任何唯一约定命名的其他组的列。

在“约束类型”中选择“PRIMARY KEY”,然后填写“约束名”。在“可用列”清单中选择列,单击“添加”。如需多列主键,为其他列重复执行该步骤。

表的“填充因子”取值范围为10~100。默认值为100,表示完全填充。“填充因子”指定为较小值时,“INSERT”操作仅填充表页面到指定的百分比。表页面预留的剩余空间,将用于更新该页面的行。这样使得“UPDATE”操作可以在和原页面相同的页面上,放置更新后的行内容,比放置在不同的页面上更加高效。对于从未更新过表项的表来说,完全填充是最好的选择。但是对于更新规模较大的表,较小填充因子更加合适。TOAST表不支持设置该参数。

延迟”:勾选该复选框延迟该选项。

初始化延迟”:勾选该复选框,在设置的默认时间点检查约束。

然后,在“约束”区域框单击“添加”。

可单击“删除”,删除“约束”中的主键。

各域的必选参数用星号(*)标识。

唯一

在“约束类型”中选择“UNIQUE”,然后填写“约束名”。

在“可用列”清单中选择列,单击“添加”。如需多列“UNIQUE”,为其他列重复执行该步骤添加第一列后,“UNIQUE”名自动从表名填入该名称支持修改。

填充因子”:详情请参见主键小节。

延迟”:详情请参见主键小节。

初始化延迟”:详情请参见主键小节。

可单击“删除”删除“约束”中的“UNIQUE”。

各域的必选参数用星号标识。

检查

在“约束类型”中选择“CHECK”,然后填写“约束名”。

执行“INSERT”或者“UPDATE”操作,如果检查表达式错误,表数据不可更改。

双击“可用列”清单中的列,则“检查表达式”编辑行插入到当前光标位置。

然后,在“约束”区域框单击“添加”。也可单击“删除”,删除“约束”中的“CHECK”。各域的必选参数用星号标识。定义完所有列后,单击“下一步”。

下表列出了“表约束”中普通表支持的选项。

表4 约束类型

约束类型

行存表

列存表

ORC表

CHECK

x

x

UNIQUE

x

x

PRIMARY KEY

x

x

定义索引

创建索引为可选操作。索引主要用于增强数据库性能。该操作建立指定表中指定列的索引,如需创建“唯一索引”,勾选该复选框。

在“访问方式”中选择要使用的索引方法名称。默认方法是B-tree。

索引的“填充因子”指索引方法填充索引页面的百分比。“访问方式”为B-trees时,初次建立索引以及在右侧扩展索引(填写新的最大键值)时,叶子页面填充到该百分比如果后续完全填满,页面将拆分,这样会导致索引效率逐步衰减。B-trees使用默认填充因子90,也可以选择10~100范围内的整数。如果为静态表,填充因子100,这样可以尽量减小索引的物理尺寸。对于更新量较大的表,推荐填充因子设置为较小值,这样可以尽量减少页面拆分的需求。其他索引方法使用的填充因子不同,但是比较类似。默认的填充因子随方法不同而不同。

可以直接提到索引的用户定义的表达式,也可以使用“可用列”创建索引在“可用列”列表中选择列,单击“添加”。如需多列索引,为其他列重复执行该步骤。

输入新增索引的所有信息后,单击“添加”按钮。

可单击“删除”删除清单中的索引定义完所有列后,单击“下一步”。

下表列出了“索引”中普通表所支持的字段/选项。

表5 支持的字段/选项

字段/选项

行存表

列存表

ORC表

唯一索引

x

x

btree

x

gin

x

gist

x

hash

x

psort

x

spgist

x

填充因子

x

x

用户自定义表达式

x

x

部分索引

x

x

SQL预览

Data Studio按照“创建普通表”向导中输入的内容,生成一个DDL语句。

可以查看、选择、复制该查询,但是无法编辑。

  • 要选择查询,按“Ctrl+A”,或单击右键,选择“全选”。
  • 要复制所选查询,按“Ctrl+C”,或单击右键,选择“复制”。

单击“完成”创建表。单击“完成”后,生成的查询将被发送到服务器。错误会显示在对话框和状态栏中。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情