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

DDL语法一览表

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

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

定义角色

角色是用来管理权限的,从数据库安全的角度考虑,可以把所有的管理和操作权限划分到不同的角色上。所涉及的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

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

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

创建二级分区表

CREATE TABLE SUBPARTITION

修改二级分区表分区

ALTER TABLE SUBPARTITION

定义索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。所涉及的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

重编译存储过程

ALTER PROCEDURE

定义函数

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

表12 函数定义相关SQL

功能

相关SQL

创建函数

CREATE FUNCTION

修改函数属性

ALTER FUNCTION

删除函数

DROP FUNCTION

定义包

包由包头(package specification)和包体(package body)组成,用来分类管理存储过程和函数,类似于Java、C++等语言中的类。

表13 包定义相关SQL

功能

相关SQL

创建包

CREATE PACKAGE

删除包

DROP PACKAGE

修改包属性

ALTER PACKAGE

定义游标

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

表14 游标定义相关SQL

功能

相关SQL

创建游标

CURSOR

DECLARE

移动游标

MOVE

关闭游标

CLOSE

定义资源池

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

表15 资源池定义相关SQL

功能

相关SQL

创建资源池

CREATE RESOURCE POOL

修改资源池属性

ALTER RESOURCE POOL

删除资源池

DROP RESOURCE POOL

定义聚合函数

表16 聚合函数定义相关SQL

功能

相关SQL

创建一个新的聚合函数

CREATE AGGREGATE

修改聚合函数

ALTER AGGREGATE

删除聚合函数

DROP AGGREGATE

定义数据类型转换

表17 数据类型定义相关SQL

功能

相关SQL

创建一个新的用户自定义数据类型转换

CREATE CAST

删除用户自定义数据类型转换

DROP CAST

定义插件扩展

该特性为内部使用,不建议用户使用。

表18 插件扩展定义相关SQL

功能

相关SQL

创建一个新的插件扩展

CREATE EXTENSION

修改插件扩展

ALTER EXTENSION

删除插件扩展

DROP EXTENSION

定义操作符

表19 操作符定义相关SQL

功能

相关SQL

创建一个新的操作符

CREATE OPERATOR

修改操作符

ALTER OPERATOR

删除操作符

DROP OPERATOR

定义一个新的操作符类

CREATE OPERATOR CLASS

定义数据类型

表20 数据类型定义相关SQL

功能

相关SQL

创建一个新的数据类型

CREATE TYPE

修改数据类型

ALTER TYPE

删除数据类型

DROP TYPE

定义定时任务

表21 定时任务定义相关SQL

功能

相关SQL

创建一个新的定时任务

CREATE EVENT

修改定时任务

ALTER EVENT

删除定时任务

DROP EVENT

定义DATABASE LINK对象

DATABASE LINK是可以操作远程数据库对象,所涉及的SQL语句,如表22所示。

表22 DATABASE LINK对象相关SQL

功能

相关SQL

创建一个新的DATABASE LINK对象

CREATE DATABASE LINK

修改DATABASE LINK对象

ALTER DATABASE LINK

删除DATABASE LINK对象

DROP DATABASE LINK

定义审计策略

表23 审计策略定义相关SQL

功能

相关SQL

创建统一审计策略

CREATE AUDIT POLICY

修改统一审计策略

ALTER AUDIT POLICY

删除一个审计策略

DROP AUDIT POLICY

定义目录对象

表24 目录对象定义相关SQL

功能

相关SQL

创建一个目录对象

CREATE DIRECTORY

修改对目录对象属性

ALTER DIRECTORY

删除指定的目录对象

DROP DIRECTORY

定义外部数据封装器

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

功能

相关SQL

创建外部数据封装器

CREATE FOREIGN DATA WRAPPER

修改外部数据封装器

ALTER FOREIGN DATA WRAPPER

删除外部数据封装器

DROP FOREIGN DATA WRAPPER

系统表gs_global_config相关SQL

表26 系统表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

定义用户组

表27 用户组定义相关SQL

功能

相关SQL

创建一个新用户组

CREATE GROUP

修改一个用户组的属性

ALTER GROUP

删除用户组

DROP GROUP

定义过程语言

表28 过程语言定义相关SQL

功能

相关SQL

定义一种新的过程语言

CREATE LANGUAGE

修改一个过程语言的定义

ALTER LANGUAGE

删除一个过程语言

DROP LANGUAGE

定义脱敏策略

表29 脱敏策略定义相关SQL

功能

相关SQL

创建脱敏策略

CREATE MASKING POLICY

修改脱敏策略

ALTER MASKING POLICY

删除脱敏策略

DROP MASKING POLICY

定义物化视图

表30 物化视图定义相关SQL

功能

相关SQL

创建一个全量物化视图

CREATE MATERIALIZED VIEW

创建一个增量物化视图

CREATE INCREMENTAL MATERIALIZED VIEW

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

ALTER MATERIALIZED VIEW

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

DROP MATERIALIZED VIEW

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

REFRESH MATERIALIZED VIEW

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

REFRESH INCREMENTAL MATERIALIZED VIEW

定义资源标签

表31 资源标签定义相关SQL

功能

相关SQL

创建资源标签

CREATE RESOURCE LABEL

修改资源标签

ALTER RESOURCE LABEL

删除资源标签

DROP RESOURCE LABEL

定义行访问控制策略

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

功能

相关SQL

对表创建行访问控制策略

CREATE ROW LEVEL SECURITY POLICY

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

ALTER ROW LEVEL SECURITY POLICY

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

DROP ROW LEVEL SECURITY POLICY

定义序列

表33 序列定义相关SQL

功能

相关SQL

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

CREATE SEQUENCE

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

ALTER SEQUENCE

从当前数据库里删除序列

DROP SEQUENCE

定义外部服务器

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

功能

相关SQL

定义一个新的外部服务器

CREATE SERVER

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

ALTER SERVER

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

DROP SERVER

定义同义词对象

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

功能

相关SQL

创建一个同义词对象

CREATE SYNONYM

修改同义词对象的所有者

ALTER SYNONYM

删除指定的同义词对象

DROP SYNONYM

定义触发器

表36 触发器定义相关SQL

功能

相关SQL

创建一个触发器

CREATE TRIGGER

修改触发器名称

ALTER TRIGGER

删除触发器

DROP TRIGGER

定义映射

表37 映射定义相关SQL

功能

相关SQL

定义一个用户到一个外部服务器的新映射

CREATE USER MAPPING

更改一个用户映射的定义

ALTER USER MAPPING

移除一个用于外部服务器的用户映射

DROP USER MAPPING

定义视图

表38 视图定义相关SQL

功能

相关SQL

创建一个视图

CREATE VIEW

更改视图的各种辅助属性

ALTER VIEW

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

DROP VIEW

收集统计信息

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

创建编码转换

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

定义模型

表39 模型定义相关SQL

功能

相关SQL

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

CREATE MODEL

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

DROP MODEL

定义重写规则

表40 重写规则定义相关SQL

功能

相关SQL

定义一个新的重写规则

CREATE RULE

删除一个重写规则

DROP RULE

定义安全标签

表41 安全标签定义相关SQL

功能

相关SQL

创建安全标签

CREATE SECURITY LABEL

应用更新或取消安全标签

SECURITY LABEL ON

删除安全标签

DROP SECURITY LABEL

导入DATABASE/TABLE

表42 导入准备相关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