
# DML语法一览表
DML（Data Manipulation Language，数据操作语言），用于对数据库表中的数据进行操作。如：插入、更新、查询、删除。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
对业务数据的增、删、改操作可能造成业务数据丢失、覆盖或错误，请谨慎操作。
#### 插入数据
插入数据是往数据库表中添加一条或多条记录，请参见[INSERT](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0643.html#ZH-CN_TOPIC_0000002527826250)。
同时向多个表添加一条或多条记录，请参见[INSERT ALL](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1748.html#ZH-CN_TOPIC_0000002527986196)。
#### 修改数据
修改数据是修改数据库表中的一条或多条记录，请参见[UPDATE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0696.html#ZH-CN_TOPIC_0000002558946089)。
#### 修改或者插入数据
GaussDB提供了将目标表和源表中数据针对关联条件进行匹配的语句，若关联条件匹配时对目标表进行UPDATE，无法匹配时对目标表执行INSERT，请参见[MERGE INTO](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0650.html#ZH-CN_TOPIC_0000002527826254)。
#### 查询数据
数据库查询语句SELECT是用于在数据库中检索适合条件的信息，请参见[SELECT](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0673.html#ZH-CN_TOPIC_0000002559105967)。
#### 删除数据
GaussDB提供了删除表中指定条件的数据，请参见[DELETE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0583.html#ZH-CN_TOPIC_0000002558946031)。
#### 复制数据
GaussDB提供了在表和文件之间复制数据的语句，请参见[COPY](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0531.html#ZH-CN_TOPIC_0000002527826192)。
#### 锁
GaussDB提供了多种锁模式用于控制对表中数据的并发访问，请参见[LOCK](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0646.html#ZH-CN_TOPIC_0000002527826252)。
GaussDB提供了bucket粒度的锁，请参见[LOCK BUCKETS](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0647.html#ZH-CN_TOPIC_0000002527986198)。
#### 调用函数
GaussDB提供了三个用于调用函数的语句，它们在语法结构上没有差别，请参见[CALL](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0523.html#ZH-CN_TOPIC_0000002527826188)。
#### 预备语句
表1预备语句相关SQL 
| 功能             | 相关SQL                                                                                                                       |
|:---|:---|
| 执行一个前面准备好的预备语句 | [EXECUTE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0628.html#ZH-CN_TOPIC_0000002527986188)    |
| 删除前面编写的预备语句    | [DEALLOCATE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0581.html#ZH-CN_TOPIC_0000002527826220) |
   
#### 结束会话
用户与数据库之间建立的连接称为会话，GaussDB提供结束会话的语句，请参见[ALTER SYSTEM KILL SESSION](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0508.html#ZH-CN_TOPIC_0000002527826182)。
#### 执行匿名代码块
GaussDB提供执行匿名代码块的语句，请参见[DO](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0584.html#ZH-CN_TOPIC_0000002559105921)。
#### 在指定的节点上执行SQL语句
GaussDB提供在指定的节点上执行SQL的语句，请参见[EXECUTE DIRECT](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0629.html#ZH-CN_TOPIC_0000002558946053)。
#### 通过游标检索数据
GaussDB提供通过已创建的游标来检索数据的语句，请参见[FETCH](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0635.html#ZH-CN_TOPIC_0000002527826246)。
#### 插入或替换数据
GaussDB提供在表中插入或者替换新的数据的语句，请参见[REPLACE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0664.html#ZH-CN_TOPIC_0000002558946071)。
#### 根据表达式计算值
GaussDB提供根据给定的值表达式计算一个或一组行的值的语句，请参见[VALUES](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0699.html#ZH-CN_TOPIC_0000002527986228)。
#### 导入数据
GaussDB提供将文件中的数据导入到数据库指定表中的语句，请参见[LOAD DATA](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0645.html#ZH-CN_TOPIC_0000002559105953)。
#### 定义游标
为了处理SQL语句，存储过程线程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标，存储过程可以控制上下文区域的变化，请参见[表2]。
 表2游标定义相关SQL 
| 功能   | 相关SQL                                                                                                                    |
|:---|:---|
| 创建游标 | [CURSOR](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0579.html#ZH-CN_TOPIC_0000002558946029)  |
| 创建游标 | [DECLARE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0582.html#ZH-CN_TOPIC_0000002527986166) |
| 移动游标 | [MOVE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0651.html#ZH-CN_TOPIC_0000002527986200)    |
| 关闭游标 | [CLOSE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0526.html#ZH-CN_TOPIC_0000002559105891)   |
   
#### 显示SQL语句的执行计划
GaussDB提供显示SQL语句的执行计划的语句，请参见[EXPLAIN](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0632.html#ZH-CN_TOPIC_0000002527986190)。
#### 创建预备语句
GaussDB提供创建一个预备语句的语句，请参见[PREPARE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0654.html#ZH-CN_TOPIC_0000002527826256)。
