GaussDB-DDL语法一览表

115 阅读10分钟

GaussDB-DDL语法一览表

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

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

定义角色

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

功能相关SQL
创建角色CREATE ROLE
修改角色属性ALTER ROLE
删除角色DROP ROLE
删除一个数据库角色所拥有的数据库对象DROP OWNED
定义用户

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

功能相关SQL
创建用户CREATE USER
修改用户属性ALTER USER
删除用户DROP USER
定义客户端加密主密钥

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

功能相关SQL
创建客户端加密主密钥CREATE CLIENT MASTER KEY
删除客户端加密主密钥DROP CLIENT MASTER KEY
定义列加密密钥

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

功能相关SQL
创建列加密密钥CREATE COLUMN ENCRYPTION KEY
修改列加密密钥指定的客户端主密钥7.14.173-ALTER COLUMN ENCRYPTION KEY
删列加密密钥DROP COLUMN ENCRYPTION KEY
定义数据库

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

功能相关SQL
创建数据库CREATE DATABASE
修改数据库属性ALTER DATABASE
删除数据库DROP DATABASE
定义模式

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

功能相关SQL
创建模式CREATE SCHEMA
修改模式属性ALTER SCHEMA
删除模式DROP SCHEMA
定义表空间

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

功能相关SQL
创建表空间CREATE TABLESPACE
修改表空间属性ALTER TABLESPACE
删除表空间DROP TABLESPACE
定义表

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

功能相关SQL
创建表CREATE TABLE
修改表属性ALTER TABLE
修改一个或多个表名称RENAME TABLE
删除表DROP TABLE
根据查询结果创建表CREATE TABLE AS
定义分区表

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

功能相关SQL
创建分区表CREATE TABLE PARTITION
创建分区ALTER TABLE PARTITION
修改分区表属性ALTER TABLE PARTITION
删除分区ALTER TABLE PARTITION
删除分区表DROP TABLE
定义索引

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

功能相关SQL
创建索引CREATE INDEX
修改索引属性ALTER INDEX
删除索引DROP INDEX
重建索引REINDEX
在指定的表上创建全局二级索引CREATE GLOBAL INDEX
定义存储过程

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

功能相关SQL
创建存储过程CREATE PROCEDURE
删除存储过程DROP PROCEDURE
定义函数

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

功能相关SQL
创建函数CREATE FUNCTION
修改函数属性或重编译ALTER FUNCTION
删除函数DROP FUNCTION
定义游标

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

功能相关SQL
创建游标CURSOR
DECLARE
移动游标MOVE
关闭游标CLOSE
定义资源池

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

功能相关SQL
创建资源池CREATE RESOURCE POOL
修改资源池属性ALTER RESOURCE POOL
删除资源池DROP RESOURCE POOL
定义聚合函数
功能相关SQL
创建一个新的聚合函数CREATE AGGREGATE
修改聚合函数ALTER AGGREGATE
删除聚合函数DROP AGGREGATE
定义插件扩展
功能相关SQL
创建一个新的插件扩展CREATE EXTENSION

NOTICE:

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

定义数据类型
功能相关SQL
创建一个新的数据类型CREATE TYPE
修改数据类型ALTER TYPE
删除数据类型DROP TYPE
定义DATABASE LINK对象

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

功能相关SQL
创建一个新的DATABASE LINK对象CREATE DATABASE LINK
修改DATABASE LINK对象ALTER DATABASE LINK
删除DATABASE LINK对象DROP DATABASE LINK
定义审计策略
功能相关SQL
创建统一审计策略CREATE AUDIT POLICY
修改统一审计策略ALTER AUDIT POLICY
删除一个审计策略DROP AUDIT POLICY
修改指定节点的nodeis_active字段值

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

定义目录对象
功能相关SQL
创建一个目录对象CREATE DIRECTORY
修改对目录对象属性ALTER DIRECTORY
删除指定的目录对象DROP DIRECTORY
定义外部数据封装器
功能相关SQL
创建外部数据封装器CREATE FOREIGN DATA WRAPPER
修改外部数据封装器ALTER FOREIGN DATA WRAPPER
删除外部数据封装器DROP FOREIGN DATA WRAPPER
系统表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
定义用户组
功能相关SQL
创建一个新用户组CREATE GROUP
修改一个用户组的属性ALTER GROUP
删除用户组DROP GROUP
定义过程语言
功能相关SQL
定义一种新的过程语言CREATE LANGUAGE
修改一个过程语言的定义ALTER LANGUAGE
删除一个过程语言DROP LANGUAGE
定义脱敏策略
功能相关SQL
创建脱敏策略CREATE MASKING POLICY
修改脱敏策略ALTER MASKING POLICY
删除脱敏策略DROP MASKING POLICY
定义物化视图
功能相关SQL
创建一个全量物化视图CREATE MATERIALIZED VIEW
创建一个增量物化视图CREATE INCREMENTAL MATERIALIZED VIEW
更改一个现有物化视图的多个辅助属性ALTER MATERIALIZED VIEW
强制删除数据库中已有的物化视图DROP MATERIALIZED VIEW
以全量刷新的方式对物化视图进行刷新REFRESH MATERIALIZED VIEW
以增量刷新的方式对物化视图进行刷新REFRESH INCREMENTAL MATERIALIZED VIEW
定义节点
功能相关SQL
创建一个新的集群节点CREATE NODE
修改一个现有节点的定义ALTER NODE
删除节点DROP NODE
定义节点组
功能相关SQL
创建一个新的集群节点组CREATE NODE GROUP
修改一个现有节点组的信息ALTER NODE GROUP
删除节点组DROP NODE GROUP
定义资源标签
功能相关SQL
创建资源标签CREATE RESOURCE LABEL
修改资源标签ALTER RESOURCE LABEL
删除资源标签DROP RESOURCE LABEL
定义行访问控制策略
功能相关SQL
对表创建行访问控制策略CREATE ROW LEVEL SECURITY POLICY
对已存在的行访问控制策略进行修改ALTER ROW LEVEL SECURITY POLICY
删除表上某个行访问控制策略DROP ROW LEVEL SECURITY POLICY
定义序列
功能相关SQL
向当前数据库增加一个新的序列CREATE SEQUENCE
修改一个现有的序列的参数ALTER SEQUENCE
从当前数据库里删除序列DROP SEQUENCE
定义外部服务器
功能相关SQL
定义一个新的外部服务器CREATE SERVER
增加、修改和删除一个现有SERVER的参数ALTER SERVER
删除现有的一个数据服务器DROP SERVER
定义同义词对象
功能相关SQL
创建一个同义词对象CREATE SYNONYM
修改同义词对象的所有者ALTER SYNONYM
删除指定的同义词对象DROP SYNONYM
定义触发器
功能相关SQL
创建一个触发器CREATE TRIGGER
修改触发器名称ALTER TRIGGER
删除触发器DROP TRIGGER
定义视图
功能相关SQL
创建一个视图CREATE VIEW
更改视图的各种辅助属性ALTER VIEW
数据库中强制删除已有的视图DROP VIEW
收集统计信息

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

创建同步点

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

创建编码转换

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

定义模型
功能相关SQL
训练机器学习模型并保存模型CREATE MODEL
删除一个已训练完成保存的模型对象DROP MODEL
定义安全标签
功能相关SQL
创建安全标签CREATE SECURITY LABEL
应用更新或取消安全标签SECURITY LABEL ON
删除安全标签DROP SECURITY LABEL
导入DATABASE/TABLE
功能相关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

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…