更新时间:2024-06-03 GMT+08:00

DDL语法一览表

DDL(Data Definition Language,数据定义语言),用于定义或修改数据库中的对象。如:表、索引、视图等。

GaussDB不支持CN不完整时进行DDL操作。例如:集群中有1个CN故障时执行新建数据库、表等操作都会失败。

定义角色

角色是用来管理权限的,从数据库安全的角度考虑,可以把所有的管理和操作权限划分到不同的角色上。所涉及的SQL语句,请参考表1

表1 角色定义相关SQL

功能

相关SQL

创建角色

CREATE ROLE

修改角色属性

ALTER ROLE

删除角色

DROP ROLE

删除一个数据库角色所拥有的数据库对象

DROP OWNED

定义用户

用户是用来登录数据库的,通过对用户赋予不同的权限,可以方便地管理用户对数据库的访问及操作。所涉及的SQL语句,请参考表2

表2 用户定义相关SQL

功能

相关SQL

创建用户

CREATE USER

修改用户属性

ALTER USER

删除用户

DROP USER

定义客户端加密主密钥

客户端加密主密钥主要用于密态数据库特性中,用来加密列加密密钥(cek)。客户端加密主密钥定义主要包括创建客户端加密主密钥以及删除客户端加密主密钥。所涉及的SQL语句,请参考表3

表3 客户端加密主密钥定义相关SQL

功能

相关SQL

创建客户端加密主密钥

CREATE CLIENT MASTER KEY

删除客户端加密主密钥

DROP CLIENT MASTER KEY

定义列加密密钥

列加密密钥主要用于密态数据库特性中,用来加密数据。列加密密钥定义主要包括创建列加密密钥、轮转加密列加密密钥的客户端主密钥以及删除列加密密钥。所涉及的SQL语句,请参考表3

表4 列加密密钥定义相关SQL

功能

相关SQL

创建列加密密钥

CREATE COLUMN ENCRYPTION KEY

修改列加密密钥指定的客户端主密钥

7.14.173-ALTER COLUMN ENCRYPTION KEY

删列加密密钥

DROP COLUMN ENCRYPTION KEY

定义数据库

数据库是组织、存储和管理数据的仓库,而数据库定义主要包括:创建数据库、修改数据库属性,以及删除数据库。所涉及的SQL语句,请参考表5

表5 数据库定义相关SQL

功能

相关SQL

创建数据库

CREATE DATABASE

修改数据库属性

ALTER DATABASE

删除数据库

DROP DATABASE

定义模式

模式是一组数据库对象的集合,主要用于控制对数据库对象的访问。所涉及的SQL语句,请参考表6

表6 模式定义相关SQL

功能

相关SQL

创建模式

CREATE SCHEMA

修改模式属性

ALTER SCHEMA

删除模式

DROP SCHEMA

定义表空间

表空间用于管理数据对象,与磁盘上的一个目录对应。所涉及的SQL语句,请参考表7

表7 表空间定义相关SQL

功能

相关SQL

创建表空间

CREATE TABLESPACE

修改表空间属性

ALTER TABLESPACE

删除表空间

DROP TABLESPACE

定义表

表是数据库中的一种特殊数据结构,用于存储数据对象以及对象之间的关系。所涉及的SQL语句,请参考表8

表8 表定义相关SQL

功能

相关SQL

创建表

CREATE TABLE

修改表属性

ALTER TABLE

修改一个或多个表名称

RENAME TABLE

删除表

DROP TABLE

根据查询结果创建表

CREATE TABLE AS

定义分区表

分区表是一种逻辑表,数据是由普通表存储的,主要用于提升查询性能。所涉及的SQL语句,请参考表9

表9 分区表定义相关SQL

功能

相关SQL

创建分区表

CREATE TABLE PARTITION

创建分区

ALTER TABLE PARTITION

修改分区表属性

ALTER TABLE PARTITION

删除分区

ALTER TABLE PARTITION

删除分区表

DROP TABLE

定义索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。所涉及的SQL语句,请参考表10

表10 索引定义相关SQL

功能

相关SQL

创建索引

CREATE INDEX

修改索引属性

ALTER INDEX

删除索引

DROP INDEX

重建索引

REINDEX

在指定的表上创建全局二级索引

CREATE GLOBAL INDEX

定义存储过程

存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数(如果该存储过程带有参数)来执行它。所涉及的SQL语句,请参考表11

表11 存储过程定义相关SQL

功能

相关SQL

创建存储过程

CREATE PROCEDURE

删除存储过程

DROP PROCEDURE

定义函数

GaussDB中,它和存储过程类似,也是一组SQL语句集,使用上没有差别。所涉及的SQL语句,请参考表12

表12 函数定义相关SQL

功能

相关SQL

创建函数

CREATE FUNCTION

修改函数属性或重编译

ALTER FUNCTION

删除函数

DROP FUNCTION

定义游标

为了处理SQL语句,存储过程线程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化,请参考表13

表13 游标定义相关SQL

功能

相关SQL

创建游标

CURSOR

DECLARE

移动游标

MOVE

关闭游标

CLOSE

定义资源池

资源池是负载管理模块使用的系统表,主要用于指定资源管理相关的属性,如控制组。所涉及的SQL语句,请参考表14

表14 资源池定义相关SQL

功能

相关SQL

创建资源池

CREATE RESOURCE POOL

修改资源池属性

ALTER RESOURCE POOL

删除资源池

DROP RESOURCE POOL

定义聚合函数

表15 聚合函数定义相关SQL

功能

相关SQL

创建一个新的聚合函数

CREATE AGGREGATE

修改聚合函数

ALTER AGGREGATE

删除聚合函数

DROP AGGREGATE

定义插件扩展

表16 插件扩展定义相关SQL

功能

相关SQL

创建一个新的插件扩展

CREATE EXTENSION

扩展功能为内部使用功能,不建议用户使用。

定义数据类型

表17 数据类型定义相关SQL

功能

相关SQL

创建一个新的数据类型

CREATE TYPE

修改数据类型

ALTER TYPE

删除数据类型

DROP TYPE

定义DATABASE LINK对象

DATABASE LINK是可以操作远程数据库对象,所涉及的SQL语句,请参考表18

表18 DATABASE LINK对象相关SQL

功能

相关SQL

创建一个新的DATABASE LINK对象

CREATE DATABASE LINK

修改DATABASE LINK对象

ALTER DATABASE LINK

删除DATABASE LINK对象

DROP DATABASE LINK

定义审计策略

表19 审计策略定义相关SQL

功能

相关SQL

创建统一审计策略

CREATE AUDIT POLICY

修改统一审计策略

ALTER AUDIT POLICY

删除一个审计策略

DROP AUDIT POLICY

修改指定节点的nodeis_active字段值

修改pgxc_node系统表中指定节点的nodeis_active字段值,请参考ALTER COORDINATOR

定义目录对象

表20 目录对象定义相关SQL

功能

相关SQL

创建一个目录对象

CREATE DIRECTORY

修改对目录对象属性

ALTER DIRECTORY

删除指定的目录对象

DROP DIRECTORY

定义外部数据封装器

表21 外部数据封装器相关SQL

功能

相关SQL

创建外部数据封装器

CREATE FOREIGN DATA WRAPPER

修改外部数据封装器

ALTER FOREIGN DATA WRAPPER

删除外部数据封装器

DROP FOREIGN DATA WRAPPER

系统表gs_global_config相关SQL

表22 系统表gs_global_config相关SQL

功能

相关SQL

新增、修改系统表gs_global_config的参数值

ALTER GLOBAL CONFIGURATION

删除系统表gs_global_config中的参数值

DROP GLOBAL CONFIGURATION

向系统表gs_global_config中插入一个或者多个弱口令

CREATE WEAK PASSWORD DICTIONARY

清空系统表gs_global_config中的所有弱口令

DROP WEAK PASSWORD DICTIONARY

定义用户组

表23 用户组定义相关SQL

功能

相关SQL

创建一个新用户组

CREATE GROUP

修改一个用户组的属性

ALTER GROUP

删除用户组

DROP GROUP

定义过程语言

表24 过程语言定义相关SQL

功能

相关SQL

定义一种新的过程语言

CREATE LANGUAGE

修改一个过程语言的定义

ALTER LANGUAGE

删除一个过程语言

DROP LANGUAGE

定义脱敏策略

表25 脱敏策略定义相关SQL

功能

相关SQL

创建脱敏策略

CREATE MASKING POLICY

修改脱敏策略

ALTER MASKING POLICY

删除脱敏策略

DROP MASKING POLICY

定义物化视图

表26 物化视图定义相关SQL

功能

相关SQL

创建一个全量物化视图

CREATE MATERIALIZED VIEW

创建一个增量物化视图

CREATE INCREMENTAL MATERIALIZED VIEW

更改一个现有物化视图的多个辅助属性

ALTER MATERIALIZED VIEW

强制删除数据库中已有的物化视图

DROP MATERIALIZED VIEW

以全量刷新的方式对物化视图进行刷新

REFRESH MATERIALIZED VIEW

以增量刷新的方式对物化视图进行刷新

REFRESH INCREMENTAL MATERIALIZED VIEW

定义节点

表27 节点定义相关SQL

功能

相关SQL

创建一个新的集群节点

CREATE NODE

修改一个现有节点的定义

ALTER NODE

删除节点

DROP NODE

定义节点组

表28 节点组定义相关SQL

功能

相关SQL

创建一个新的集群节点组

CREATE NODE GROUP

修改一个现有节点组的信息

ALTER NODE GROUP

删除节点组

DROP NODE GROUP

定义资源标签

表29 资源标签定义相关SQL

功能

相关SQL

创建资源标签

CREATE RESOURCE LABEL

修改资源标签

ALTER RESOURCE LABEL

删除资源标签

DROP RESOURCE LABEL

定义行访问控制策略

表30 行访问控制策略定义相关SQL

功能

相关SQL

对表创建行访问控制策略

CREATE ROW LEVEL SECURITY POLICY

对已存在的行访问控制策略进行修改

ALTER ROW LEVEL SECURITY POLICY

删除表上某个行访问控制策略

DROP ROW LEVEL SECURITY POLICY

定义序列

表31 序列定义相关SQL

功能

相关SQL

向当前数据库增加一个新的序列

CREATE SEQUENCE

修改一个现有的序列的参数

ALTER SEQUENCE

从当前数据库里删除序列

DROP SEQUENCE

定义外部服务器

表32 外部服务器定义相关SQL

功能

相关SQL

定义一个新的外部服务器

CREATE SERVER

增加、修改和删除一个现有SERVER的参数

ALTER SERVER

删除现有的一个数据服务器

DROP SERVER

定义同义词对象

表33 同义词对象定义相关SQL

功能

相关SQL

创建一个同义词对象

CREATE SYNONYM

修改同义词对象的所有者

ALTER SYNONYM

删除指定的同义词对象

DROP SYNONYM

定义触发器

表34 触发器定义相关SQL

功能

相关SQL

创建一个触发器

CREATE TRIGGER

修改触发器名称

ALTER TRIGGER

删除触发器

DROP TRIGGER

定义视图

表35 视图定义相关SQL

功能

相关SQL

创建一个视图

CREATE VIEW

更改视图的各种辅助属性

ALTER VIEW

数据库中强制删除已有的视图

DROP VIEW

收集统计信息

收集与数据库中普通表内容相关的统计信息,请参考ANALYZE | ANALYSE

创建同步点

创建一个新集群节点间的同步点,请参考CREATE BARRIER

创建编码转换

定义一种两个字符集编码之间的新转换,请参考CREATE CONVERSION

定义模型

表36 模型定义相关SQL

功能

相关SQL

训练机器学习模型并保存模型

CREATE MODEL

删除一个已训练完成保存的模型对象

DROP MODEL

定义安全标签

表37 安全标签定义相关SQL

功能

相关SQL

创建安全标签

CREATE SECURITY LABEL

应用更新或取消安全标签

SECURITY LABEL ON

删除安全标签

DROP SECURITY LABEL

导入DATABASE/TABLE

表38 导入准备相关SQL

功能

相关SQL

导入DATABASE的准备阶段

IMPDP DATABASE CREATE

导入DATABASE的执行阶段

IMPDP RECOVER

导入表的准备阶段

IMPDP TABLE PREPARE

导入表的执行阶段

IMPDP TABLE

清理回收站

GaussDB提供清理回收站的语句,请参考PURGE

对表进行聚簇排序

GaussDB支持根据一个索引对表进行聚簇排序的语句,请参考CLUSTER

定义一个对象的注释

GaussDB支持定义或修改一个对象的注释的语句,请参考COMMENT

根据查询结果创建新表

GaussDB支持用于根据查询结果创建一个新表,并且将查询到的数据插入到新表的语句,请参考SELECT INTO

将表恢复到一个早期状态

GaussDB支持在人为操作或应用程序错误时,将表恢复到一个早期状态的语句,请参考TIMECAPSULE TABLE

清理表数据

GaussDB支持在快速地从表中删除所有行的语句,请参考TRUNCATE

回收存储空间

GaussDB支持回收表或B-Tree索引中已经删除的行所占据的存储空间的语句,请参考VACUUM