
# DDL语法一览表
DDL（Data Definition Language数据定义语言），用于定义或修改数据库中的对象。如：表、索引、视图等。
![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
GaussDB不支持CN不完整时进行DDL操作。例如：集群中有1个CN故障时执行新建数据库、表等操作都会失败。
#### 定义数据库
数据库是组织、存储和管理数据的仓库，而数据库定义主要包括：创建数据库、修改数据库属性，以及删除数据库。所涉及的SQL语句，请参考[表1]。
 表1数据库定义相关SQL 
| 功能      | 相关SQL                                                                                                                            |
|:---|:---|
| 创建数据库   | [CREATE DATABASE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0359.html#ZH-CN_TOPIC_0000002187528396) |
| 修改数据库属性 | [ALTER DATABASE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0317.html#ZH-CN_TOPIC_0000002222888793)  |
| 删除数据库   | [DROP DATABASE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0393.html#ZH-CN_TOPIC_0000002222888873)   |
   
#### 定义模式
模式是一组数据库对象的集合，主要用于控制对数据库对象的访问。所涉及的SQL语句，请参考[表2]。
 表2模式定义相关SQL 
| 功能     | 相关SQL                                                                                                                          |
|:---|:---|
| 创建模式   | [CREATE SCHEMA](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0374.html#ZH-CN_TOPIC_0000002187368748) |
| 修改模式属性 | [ALTER SCHEMA](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0332.html#ZH-CN_TOPIC_0000002222774393)  |
| 删除模式   | [DROP SCHEMA](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0409.html#ZH-CN_TOPIC_0000002222888893)   |
   
#### 定义表空间
表空间用于管理数据对象，与磁盘上的一个目录对应。所涉及的SQL语句，请参考[表3]。
 表3表空间定义相关SQL 
| 功能      | 相关SQL                                                                                                                              |
|:---|:---|
| 创建表空间   | [CREATE TABLESPACE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0379.html#ZH-CN_TOPIC_0000002187528428) |
| 修改表空间属性 | [ALTER TABLESPACE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0340.html#ZH-CN_TOPIC_0000002222774401)  |
| 删除表空间   | [DROP TABLESPACE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0414.html#ZH-CN_TOPIC_0000002187368792)   |
   
#### 定义表
表是数据库中的一种特殊数据结构，用于存储数据对象以及对象之间的关系。所涉及的SQL语句，请参考[表4]。
 表4表定义相关SQL 
| 功能    | 相关SQL                                                                                                                         |
|:---|:---|
| 创建表   | [CREATE TABLE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0378.html#ZH-CN_TOPIC_0000002187368752) |
| 修改表属性 | [ALTER TABLE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0338.html#ZH-CN_TOPIC_0000002187368712)  |
| 删除表   | [DROP TABLE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0413.html#ZH-CN_TOPIC_0000002222888897)   |
   
#### 定义分区表
分区表是一种逻辑表，数据是由普通表存储的，主要用于提升查询性能。所涉及的SQL语句，请参考[表5]。
 表5分区表定义相关SQL 
| 功能      | 相关SQL                                                                                                                                   |
|:---|:---|
| 创建分区表   | [CREATE TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0381.html#ZH-CN_TOPIC_0000002222888861) |
| 创建分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0339.html#ZH-CN_TOPIC_0000002187528372)  |
| 修改分区表属性 | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0339.html#ZH-CN_TOPIC_0000002187528372)  |
| 删除分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0339.html#ZH-CN_TOPIC_0000002187528372)  |
| 删除分区表   | [DROP TABLE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0413.html#ZH-CN_TOPIC_0000002222888897)             |
   
#### 定义索引
索引是对数据库表中一列或多列的值进行排序的一种结构，使用索引可快速访问数据库表中的特定信息。所涉及的SQL语句，请参考[表6]。
 表6索引定义相关SQL 
| 功能     | 相关SQL                                                                                                                         |
|:---|:---|
| 创建索引   | [CREATE INDEX](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0364.html#ZH-CN_TOPIC_0000002222774425) |
| 修改索引属性 | [ALTER INDEX](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0323.html#ZH-CN_TOPIC_0000002187528356)  |
| 删除索引   | [DROP INDEX](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0398.html#ZH-CN_TOPIC_0000002187368772)   |
| 重建索引   | [REINDEX](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0433.html#ZH-CN_TOPIC_0000002222888917)      |
   
#### 定义存储过程
存储过程是一组为了完成特定功能的SQL语句集，经编译后存储在数据库中，用户通过指定存储过程的名称并给出参数（如果该存储过程带有参数）来执行它。所涉及的SQL语句，请参考[表7]。
 表7存储过程定义相关SQL 
| 功能     | 相关SQL                                                                                                                             |
|:---|:---|
| 创建存储过程 | [CREATE PROCEDURE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0370.html#ZH-CN_TOPIC_0000002187368744) |
| 删除存储过程 | [DROP PROCEDURE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0405.html#ZH-CN_TOPIC_0000002222888889)   |
   
#### 定义函数
在GaussDB中，它和存储过程类似，也是一组SQL语句集，使用上没有差别。所涉及的SQL语句，请参考[表8]。
 表8函数定义相关SQL 
| 功能     | 相关SQL                                                                                                                            |
|:---|:---|
| 创建函数   | [CREATE FUNCTION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0361.html#ZH-CN_TOPIC_0000002222888837) |
| 修改函数属性 | [ALTER FUNCTION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0320.html#ZH-CN_TOPIC_0000002222774377)  |
| 删除函数   | [DROP FUNCTION](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0395.html#ZH-CN_TOPIC_0000002187528444)   |
   
#### 定义视图
视图是从一个或几个基本表中导出的虚表，可用于控制用户对数据访问，请参考[表9]。
 表9视图定义相关SQL 
| 功能   | 相关SQL                                                                                                                        |
|:---|:---|
| 创建视图 | [CREATE VIEW](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0385.html#ZH-CN_TOPIC_0000002222888865) |
| 删除视图 | [DROP VIEW](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0418.html#ZH-CN_TOPIC_0000002187368796)   |
   
#### 定义游标
为了处理SQL语句，存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标，存储过程可以控制上下文区域的变化，请参考[表10]。
 表10游标定义相关SQL 
| 功能       | 相关SQL                                                                                                                   |
|:---|:---|
| 创建游标     | [CURSOR](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0387.html#ZH-CN_TOPIC_0000002187528436) |
| 移动游标     | [MOVE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0428.html#ZH-CN_TOPIC_0000002222774505)   |
| 从游标中提取数据 | [FETCH](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0424.html#ZH-CN_TOPIC_0000002222774501)  |
| 关闭游标     | [CLOSE](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb-12-0350.html#ZH-CN_TOPIC_0000002187368724)  |
   
