
# DDL语法一览表
DDL（Data Definition Language数据定义语言），用于定义或修改数据库中的对象。如：表、索引、视图等。
![](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
GaussDB不支持CN不完整时进行DDL操作。例如：集群中有1个CN故障时执行新建数据库、表等操作都会失败。
#### 定义客户端加密主密钥
客户端加密主密钥主要用于密态数据库特性中，用来加密列加密密钥(cek)。客户端加密主密钥定义主要包括创建客户端加密主密钥以及删除客户端加密主密钥。所涉及的SQL语句，请参考[表1]。
 表1客户端加密主密钥定义相关SQL 
| 功能         | 相关SQL                                                                                                                                     |
|:---|:---|
| 创建客户端加密主密钥 | [CREATE CLIENT MASTER KEY](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0511.html#ZH-CN_TOPIC_0000002200190278) |
| 删除客户端加密主密钥 | [DROP CLIENT MASTER KEY](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0559.html#ZH-CN_TOPIC_0000002200190326)   |
   
#### 定义列加密密钥
列加密密钥主要用于密态数据库特性中，用来加密数据。列加密密钥定义主要包括创建列加密密钥、轮转加密列加密密钥的客户端主密钥以及删除列加密密钥。所涉及的SQL语句，请参考[表1]。
表2列加密密钥定义相关SQL 
| 功能               | 相关SQL                                                                                                                                                 |
|:---|:---|
| 创建列加密密钥          | [CREATE COLUMN ENCRYPTION KEY](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0512.html#ZH-CN_TOPIC_0000002235390365)         |
| 修改列加密密钥指定的客户端主密钥 | [7.14.173-ALTER COLUMN ENCRYPTION KEY](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0458.html#ZH-CN_TOPIC_0000002200349954) |
| 删除列加密密钥          | [DROP COLUMN ENCRYPTION KEY](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0560.html#ZH-CN_TOPIC_0000002235390417)           |
   
#### 定义数据库
数据库是组织、存储和管理数据的仓库，而数据库定义主要包括：创建数据库、修改数据库属性，以及删除数据库。所涉及的SQL语句，请参考[表3]。
 表3数据库定义相关SQL 
| 功能      | 相关SQL                                                                                                                            |
|:---|:---|
| 创建数据库   | [CREATE DATABASE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0514.html#ZH-CN_TOPIC_0000002200350050) |
| 修改数据库属性 | [ALTER DATABASE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0460.html#ZH-CN_TOPIC_0000002235390273)  |
| 删除数据库   | [DROP DATABASE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0561.html#ZH-CN_TOPIC_0000002235270573)   |
   
#### 定义模式
模式是一组数据库对象的集合，主要用于控制对数据库对象的访问。所涉及的SQL语句，请参考[表4]。
 表4模式定义相关SQL 
| 功能     | 相关SQL                                                                                                                          |
|:---|:---|
| 创建模式   | [CREATE SCHEMA](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0536.html#ZH-CN_TOPIC_0000002235390389) |
| 修改模式属性 | [ALTER SCHEMA](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0481.html#ZH-CN_TOPIC_0000002235270485)  |
| 删除模式   | [DROP SCHEMA](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0583.html#ZH-CN_TOPIC_0000002200190350)   |
   
#### 定义表空间
表空间用于管理数据对象，与磁盘上的一个目录对应。所涉及的SQL语句，请参考[表5]。
 表5表空间定义相关SQL 
| 功能      | 相关SQL                                                                                                                              |
|:---|:---|
| 创建表空间   | [CREATE TABLESPACE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0541.html#ZH-CN_TOPIC_0000002235270553) |
| 修改表空间属性 | [ALTER TABLESPACE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0489.html#ZH-CN_TOPIC_0000002235270497)  |
| 删除表空间   | [DROP TABLESPACE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0588.html#ZH-CN_TOPIC_0000002235390445)   |
   
#### 定义表
表是数据库中的一种特殊数据结构，用于存储数据对象以及对象之间的关系。所涉及的SQL语句，请参考[表6]。
 表6表定义相关SQL 
| 功能    | 相关SQL                                                                                                                         |
|:---|:---|
| 创建表   | [CREATE TABLE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0540.html#ZH-CN_TOPIC_0000002235390393) |
| 修改表属性 | [ALTER TABLE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0487.html#ZH-CN_TOPIC_0000002200190250)  |
| 删除表   | [DROP TABLE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0587.html#ZH-CN_TOPIC_0000002200190354)   |
   
#### 定义分区表
分区表是一种逻辑表，数据是由普通表存储的，主要用于提升查询性能。所涉及的SQL语句，请参考[表7]。
 表7分区表定义相关SQL 
| 功能      | 相关SQL                                                                                                                                   |
|:---|:---|
| 创建分区表   | [CREATE TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0543.html#ZH-CN_TOPIC_0000002200190310) |
| 创建分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0488.html#ZH-CN_TOPIC_0000002235390341)  |
| 修改分区表属性 | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0488.html#ZH-CN_TOPIC_0000002235390341)  |
| 删除分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0488.html#ZH-CN_TOPIC_0000002235390341)  |
| 删除分区表   | [DROP TABLE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0587.html#ZH-CN_TOPIC_0000002200190354)             |
   
#### 定义索引
索引是对数据库表中一列或多列的值进行排序的一种结构，使用索引可快速访问数据库表中的特定信息。所涉及的SQL语句，请参考[表8]。
 表8索引定义相关SQL 
| 功能     | 相关SQL                                                                                                                         |
|:---|:---|
| 创建索引   | [CREATE INDEX](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0523.html#ZH-CN_TOPIC_0000002235390377) |
| 修改索引属性 | [ALTER INDEX](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0469.html#ZH-CN_TOPIC_0000002200349994)  |
| 删除索引   | [DROP INDEX](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0569.html#ZH-CN_TOPIC_0000002200350110)   |
| 重建索引   | [REINDEX](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0618.html#ZH-CN_TOPIC_0000002200350162)      |
   
#### 定义存储过程
存储过程是一组为了完成特定功能的SQL语句集，经编译后存储在数据库中，用户通过指定存储过程的名称并给出参数（如果该存储过程带有参数）来执行它。所涉及的SQL语句，请参考[表9]。
 表9存储过程定义相关SQL 
| 功能     | 相关SQL                                                                                                                             |
|:---|:---|
| 创建存储过程 | [CREATE PROCEDURE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0531.html#ZH-CN_TOPIC_0000002235390385) |
| 删除存储过程 | [DROP PROCEDURE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0578.html#ZH-CN_TOPIC_0000002200190346)   |
   
#### 定义函数
在GaussDB中，它和存储过程类似，也是一组SQL语句集，使用上没有差别。所涉及的SQL语句，请参考[表10]。
 表10函数定义相关SQL 
| 功能         | 相关SQL                                                                                                                            |
|:---|:---|
| 创建函数       | [CREATE FUNCTION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0519.html#ZH-CN_TOPIC_0000002235390373) |
| 修改函数属性或重编译 | [ALTER FUNCTION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0466.html#ZH-CN_TOPIC_0000002200190210)  |
| 删除函数       | [DROP FUNCTION](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0566.html#ZH-CN_TOPIC_0000002200190334)   |
   
#### 定义视图
视图是从一个或几个基本表中导出的虚表，可用于控制用户对数据访问，请参考[表11]。
 表11视图定义相关SQL 
| 功能   | 相关SQL                                                                                                                        |
|:---|:---|
| 创建视图 | [CREATE VIEW](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0549.html#ZH-CN_TOPIC_0000002235270561) |
| 删除视图 | [DROP VIEW](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0594.html#ZH-CN_TOPIC_0000002200350134)   |
   
#### 定义游标
为了处理SQL语句，存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标，存储过程可以控制上下文区域的变化，请参考[表12]。
 表12游标定义相关SQL 
| 功能       | 相关SQL                                                                                                                   |
|:---|:---|
| 创建游标     | [CURSOR](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0552.html#ZH-CN_TOPIC_0000002235390409) |
| 移动游标     | [MOVE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0611.html#ZH-CN_TOPIC_0000002200190382)   |
| 从游标中提取数据 | [FETCH](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0603.html#ZH-CN_TOPIC_0000002200190374)  |
| 关闭游标     | [CLOSE](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0502.html#ZH-CN_TOPIC_0000002200350038)  |
   
#### 定义DATABASE LINK对象
DATABASE LINK是可以操作远程数据库对象，所涉及的SQL语句，请参考[表13]。
 表13DATABASE LINK对象相关SQL 
| 功能                    | 相关SQL                                                                                                                                 |
|:---|:---|
| 创建一个新的DATABASE LINK对象 | [CREATE DATABASE LINK](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1502.html#ZH-CN_TOPIC_0000002200190282) |
| 修改DATABASE LINK对象     | [ALTER DATABASE LINK](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1501.html#ZH-CN_TOPIC_0000002235270437)  |
| 删除DATABASE LINK对象     | [DROP DATABASE LINK](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1503.html#ZH-CN_TOPIC_0000002200350102)   |
   
#### 定义外部数据封装器
表14外部数据封装器相关SQL 
| 功能        | 相关SQL                                                                                                                                        |
|:---|:---|
| 创建外部数据封装器 | [CREATE FOREIGN DATA WRAPPER](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1745.html#ZH-CN_TOPIC_0000002200350054) |
| 修改外部数据封装器 | [ALTER FOREIGN DATA WRAPPER](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1744.html#ZH-CN_TOPIC_0000002235270441)  |
| 删除外部数据封装器 | [DROP FOREIGN DATA WRAPPER](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-1746.html#ZH-CN_TOPIC_0000002235270577)   |
   
