
# DDL语法一览表
DDL（Data Definition Language数据定义语言），用于定义或修改数据库中的对象。如：表、索引、视图等。
![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
GaussDB不支持数据库主节点不完整时进行DDL操作。例如：数据库中有1个数据库主节点故障时执行新建数据库、表等操作都会失败。
#### 定义数据库
数据库是组织、存储和管理数据的仓库，而数据库定义主要包括：创建数据库、修改数据库属性，以及删除数据库。所涉及的SQL语句，请参考[表1]。
 表1数据库定义相关SQL 
| 功能      | 相关SQL                                                                                                                            |
|:---|:---|
| 创建数据库   | [CREATE DATABASE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0403.html#ZH-CN_TOPIC_0000002221381849) |
| 修改数据库属性 | [ALTER DATABASE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0357.html#ZH-CN_TOPIC_0000002186175746)  |
| 删除数据库   | [DROP DATABASE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0443.html#ZH-CN_TOPIC_0000002221381889)   |
   
#### 定义模式
模式是一组数据库对象的集合，主要用于控制对数据库对象的访问。所涉及的SQL语句，请参考[表2]。
 表2模式定义相关SQL 
| 功能     | 相关SQL                                                                                                                          |
|:---|:---|
| 创建模式   | [CREATE SCHEMA](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0420.html#ZH-CN_TOPIC_0000002186016178) |
| 修改模式属性 | [ALTER SCHEMA](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0373.html#ZH-CN_TOPIC_0000002186175766)  |
| 删除模式   | [DROP SCHEMA](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0460.html#ZH-CN_TOPIC_0000002186016230)   |
   
#### 定义表空间
表空间用于管理数据对象，与磁盘上的一个目录对应。所涉及的SQL语句，请参考[表3]。
 表3表空间定义相关SQL 
| 功能      | 相关SQL                                                                                                                              |
|:---|:---|
| 创建表空间   | [CREATE TABLESPACE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0427.html#ZH-CN_TOPIC_0000002221381873) |
| 修改表空间属性 | [ALTER TABLESPACE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0382.html#ZH-CN_TOPIC_0000002221496269)  |
| 删除表空间   | [DROP TABLESPACE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0465.html#ZH-CN_TOPIC_0000002186175874)   |
   
#### 定义表
表是数据库中的一种特殊数据结构，用于存储数据对象以及对象之间的关系。所涉及的SQL语句，请参考[表4]。
 表4表定义相关SQL 
| 功能    | 相关SQL                                                                                                                         |
|:---|:---|
| 创建表   | [CREATE TABLE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0424.html#ZH-CN_TOPIC_0000002186016182) |
| 修改表属性 | [ALTER TABLE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0379.html#ZH-CN_TOPIC_0000002221381817)  |
| 删除表   | [DROP TABLE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0464.html#ZH-CN_TOPIC_0000002186016234)   |
   
#### 定义分区表
分区表是一种逻辑表，数据是由普通表存储的，主要用于提升查询性能。所涉及的SQL语句，请参考[表5]。
 表5分区表定义相关SQL 
| 功能      | 相关SQL                                                                                                                                   |
|:---|:---|
| 创建分区表   | [CREATE TABLE PARTITION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0426.html#ZH-CN_TOPIC_0000002221496321) |
| 创建分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0380.html#ZH-CN_TOPIC_0000002186016130)  |
| 修改分区表属性 | [ALTER TABLE PARTITION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0380.html#ZH-CN_TOPIC_0000002186016130)  |
| 删除分区    | [ALTER TABLE PARTITION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0380.html#ZH-CN_TOPIC_0000002186016130)  |
| 删除分区表   | [DROP TABLE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0464.html#ZH-CN_TOPIC_0000002186016234)             |
   
#### 定义索引
索引是对数据库表中一列或多列的值进行排序的一种结构，使用索引可快速访问数据库表中的特定信息。所涉及的SQL语句，请参考[表6]。
 表6索引定义相关SQL 
| 功能     | 相关SQL                                                                                                                         |
|:---|:---|
| 创建索引   | [CREATE INDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0408.html#ZH-CN_TOPIC_0000002186016162) |
| 修改索引属性 | [ALTER INDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0363.html#ZH-CN_TOPIC_0000002221381797)  |
| 删除索引   | [DROP INDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0448.html#ZH-CN_TOPIC_0000002186016210)   |
| 重建索引   | [REINDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0487.html#ZH-CN_TOPIC_0000002221381941)      |
   
#### 定义存储过程
存储过程是一组为了完成特定功能的SQL语句集，经编译后存储在数据库中，用户通过指定存储过程的名称并给出参数（如果该存储过程带有参数）来执行它。所涉及的SQL语句，请参考[表7]。
 表7存储过程定义相关SQL 
| 功能     | 相关SQL                                                                                                                             |
|:---|:---|
| 创建存储过程 | [CREATE PROCEDURE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0415.html#ZH-CN_TOPIC_0000002221381861) |
| 删除存储过程 | [DROP PROCEDURE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0455.html#ZH-CN_TOPIC_0000002221381909)   |
   
#### 定义函数
在GaussDB中，它和存储过程类似，也是一组SQL语句集，使用上没有差别。所涉及的SQL语句，请参考[表8]。
 表8函数定义相关SQL 
| 功能     | 相关SQL                                                                                                                            |
|:---|:---|
| 创建函数   | [CREATE FUNCTION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0405.html#ZH-CN_TOPIC_0000002186175798) |
| 修改函数属性 | [ALTER FUNCTION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0360.html#ZH-CN_TOPIC_0000002186016106)  |
| 删除函数   | [DROP FUNCTION](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0445.html#ZH-CN_TOPIC_0000002186175846)   |
   
#### 定义包
包是模块化的思想，由包头（package specification）和包体(package body)组成，用来分类管理存储过程和函数，类似于Java、C++等语言中的类。
表9包定义相关SQL 
| 功能    | 相关SQL                                                                                                                           |
|:---|:---|
| 创建包   | [CREATE PACKAGE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0414.html#ZH-CN_TOPIC_0000002221496301) |
| 删除包   | [DROP PACKAGE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0454.html#ZH-CN_TOPIC_0000002221496357)   |
| 修改包属性 | [ALTER PACKAGE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0368.html#ZH-CN_TOPIC_0000002186016114)  |
   
#### 定义视图
视图是从一个或几个基本表中导出的虚表，可用于控制用户对数据访问，请参考[表10]。
 表10视图定义相关SQL 
| 功能   | 相关SQL                                                                                                                        |
|:---|:---|
| 创建视图 | [CREATE VIEW](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0433.html#ZH-CN_TOPIC_0000002186175834) |
| 删除视图 | [DROP VIEW](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0470.html#ZH-CN_TOPIC_0000002221496373)   |
   
#### 定义游标
为了处理SQL语句，存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标，存储过程可以控制上下文区域的变化，请参考[表11]。
 表11游标定义相关SQL 
| 功能       | 相关SQL                                                                                                                   |
|:---|:---|
| 创建游标     | [CURSOR](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0435.html#ZH-CN_TOPIC_0000002221381881) |
| 移动游标     | [MOVE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0480.html#ZH-CN_TOPIC_0000002186016250)   |
| 从游标中提取数据 | [FETCH](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0475.html#ZH-CN_TOPIC_0000002221381929)  |
| 关闭游标     | [CLOSE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0393.html#ZH-CN_TOPIC_0000002186175786)  |
   
#### 定义聚合函数
表12聚合函数定义相关SQL 
| 功能         | 相关SQL                                                                                                                             |
|:---|:---|
| 创建一个新的聚合函数 | [CREATE AGGREGATE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0399.html#ZH-CN_TOPIC_0000002221381841) |
| 修改聚合函数     | [ALTER AGGREGATE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0355.html#ZH-CN_TOPIC_0000002221381789)  |
| 删除聚合函数     | [DROP AGGREGATE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0440.html#ZH-CN_TOPIC_0000002186016198)   |
   
#### 定义数据类型转换
表13数据类型定义相关SQL 
| 功能                | 相关SQL                                                                                                                        |
|:---|:---|
| 创建一个新的用户自定义数据类型转换 | [CREATE CAST](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0401.html#ZH-CN_TOPIC_0000002186175794) |
| 删除用户自定义数据类型转换     | [DROP CAST](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0442.html#ZH-CN_TOPIC_0000002221496337)   |
   
#### 定义操作符
表14操作符定义相关SQL 
| 功能        | 相关SQL                                                                                                                            |
|:---|:---|
| 创建一个新的操作符 | [CREATE OPERATOR](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0412.html#ZH-CN_TOPIC_0000002186016166) |
| 修改操作符     | [ALTER OPERATOR](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0367.html#ZH-CN_TOPIC_0000002221381801)  |
| 删除操作符     | [DROP OPERATOR](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0452.html#ZH-CN_TOPIC_0000002186016222)   |
   
#### 定义数据类型
表15数据类型定义相关SQL 
| 功能         | 相关SQL                                                                                                                        |
|:---|:---|
| 创建一个新的数据类型 | [CREATE TYPE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0430.html#ZH-CN_TOPIC_0000002221496325) |
| 修改数据类型     | [ALTER TYPE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0384.html#ZH-CN_TOPIC_0000002186016138)  |
| 删除数据类型     | [DROP TYPE](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0467.html#ZH-CN_TOPIC_0000002221381921)   |
   
