前面我们介绍了SQL语句中数据定义语言(DDL)的概念以及它的常用语句,那么DML又是什么呢?二者有什么区别呢?本篇文章将为你讲述。
## 一、DML简介
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。
![image.png](https://static.golangjob.cn/231113/600f486045ef03cd4ebf70f70b082b90.png)
它创建的模式(表)使用数据操作语言来填充。DDL填充表的行,每行称为Tuple。使用DML,您可以插入,修改,删除和检索表中的信息。DML命令有助于管理存储在数据库中的数据。但是,DML命令不会自动提交,因此变化不是永久性的。所以,可以回滚操作。
![image.png](https://static.golangjob.cn/231113/a170962e102940053d20c1f4f1a3bda2.png)
一些DML命令包括insert,update,delete和select。insert命令有助于将新记录或行存储到表中;update命令有助于修改表中的现有记录;delete命令允许从表中删除某个记录或一组记录;select命令允许从一个或多个表中检索特定记录。
关键字:
- 插入 insert
- 删除 delete
- 更新 update
## 二、DDL 语句与DML 语句的主要区别
DDL 语句与DML 语句是SQL语言中的两种主要语句类别,它们在数据库操作中起到了不同的作用。
![image.png](https://static.golangjob.cn/231113/858cd92ec6bc1ba10dcc72f6d2a777b8.png)
具体来说,DDL有助于更改数据库的结构。它主要用于定义或修改数据库的架构,包括创建、删除和修改表、数据类型、索引等。常用的DDL语句关键字包括CREATE、DROP和ALTER等。例如,可以使用CREATE TABLE语句来创建一个新表,使用ALTER TABLE语句来修改现有表的结构。
相反,DML有助于管理数据库中的数据。它涵盖了SQL中处理数据的基本操作,包括查询、插入、更新和删除数据。DML语句通常用于从数据库中提取信息、修改现有数据或添加新数据。一些常用的DML语句关键字包括SELECT、INSERT、UPDATE和DELETE等。通过这些语句,用户可以对数据库中的数据进行各种操作,以满足其需求。
总之,DDL和DML分别代表了在数据库操作中的结构定义和管理数据的两个关键方面,它们共同构成了SQL语言的核心功能,使用户能够有效地创建和管理数据库。
>编程学习,从[云端源想](https://www.ydcode.cn/?sourceId=222)开始,课程视频、在线书籍、在线编程、一对一咨询……你想要的全部学习资源这里都有,重点是统统免费![点这里即可查看](https://www.ydcode.cn/?sourceId=222)
## 三、DML 常见操作
前面我们已经了解了DML的概念和与DDL 语句的主要区别,下面我们来看看DML 常用语法有哪些。
首先,准备一张表:
![image.png](https://static.golangjob.cn/231113/0a6cdc2db73f1281d2b007002dfbb8c5.png)
### 1. 插入数据(INSERT)
#### 1.1 语法:
```
INSERT INTO 表名[(字段1,字段2,...)] VALUES(字段的1值,字段2的值,...)
```
注:在语法定义上"[]"中的内容表示可写可不写。
例:
![image.png](https://static.golangjob.cn/231113/0da987c3ea90316f25a4a0170cfb4aca.png)
注:
- 数据库中字符串的字面量是使用单引号’'表达的
- VALUES中指定的值要与指定的字段名个数,顺序,以及类型完全一致
- 查看表中数据
```
SELECT * FROM person
```
#### 1.2 插入默认值
当插入数据时不指定某个字段,那么该字段插入默认值。若创建表时字段没有显示的指定默认值时,默认值插入NULL。
例:
![image.png](https://static.golangjob.cn/231113/9052277e0415d73c5dd552cdd2b138d7.png)
注意事项:
- age字段没有指定,因此插入默认值NULL;
- 数据库中任何字段任何类型默认值都是NULL,当然可以在创建表时使用DEFAULT指定。
![image.png](https://static.golangjob.cn/231113/b3c95103c99856962626e443b5c6e428.png)
#### 1.3 全列插入
当我们插入数据不指定任何字段名时,就是全列插入。此时VALUES子句中需要为每个字段指定值。并且要求(个数,顺序,类型必须与表完全一致)
例:
![image.png](https://static.golangjob.cn/231113/ee78ac760a9ad45880d50cfe36b4ba25.png)
### 2. 修改数据(UPDATE)
#### 2.1 语法
```
UPDATE 表名 SET 字段1=新值1[,字段2=新值2,...][WHERE 过滤条件]
```
例:
![image.png](https://static.golangjob.cn/231113/883bb3dd735e703ee633f06779731d04.png)
注意:
UPDATE语句通常都要添加WHERE子句,用于添加要修改记录的条件,否则全表修改!
2.2 修改指定记录(添加WHERE子句)
例:
![image.png](https://static.golangjob.cn/231113/5ad447e866882c06f75f700e73346670.png)
**WHERE子句中常用的条件**
=, <, <= ,> ,>= ,<>(不等于使用<>。!=不是所有数据库都支持)
![image.png](https://static.golangjob.cn/231113/372ecfa38b4aa078332198b63b1bbe83.png)
### 2.3 将一个计算表达式的结果作为值使用
![image.png](https://static.golangjob.cn/231113/b6631ae2ab0d34ab8ae9e0d20952e400.png)
### 2.4 同时修改多个字段
![image.png](https://static.golangjob.cn/231113/3e290895546c02d80b9112f6e26470b4.png)
### 3. 删除语句(DELETE)
#### 3.1 语法:
```
DELETE FROM 表名 [WHERE 过滤条件]
```
注:DELETE语句通常都要添加WHERE子句,否则是清空表操作
例:
![image.png](https://static.golangjob.cn/231113/be12a281a1eb85fe7b12ee2e467904bf.png)
#### 3.2 清空表操作
```
DELETE FROM person
```
练习:
![image.png](https://static.golangjob.cn/231113/7b8faf306e48ce9803351f3a8662a7f7.png)
## 四、总结
DML是一种用于操作数据库中数据的语言。它提供了对数据的增、删、改、查等基本操作,是进行数据库编程的重要工具之一。
![image.png](https://static.golangjob.cn/231113/dba71b68c7e9413098ef4066a0f6264d.png)
在DML中,我们可以使用SELECT语句来查询数据库中的数据,使用INSERT语句来插入新的数据,使用UPDATE语句来更新已有的数据,以及使用DELETE语句来删除数据。这些操作可以通过简单的语法来实现,使得开发者能够更方便地对数据库中的数据进行处理。
除了基本操作外,DML还支持事务处理机制。事务可以确保一系列操作的完整性和一致性,如果其中任何一个步骤失败,则所有步骤都会被回滚,否则它们将被提交到数据库中。这种机制对于需要保证数据一致性的应用程序非常重要。
总的来说,DML是进行数据库编程不可或缺的一部分。通过熟练掌握DML的基本操作和事务处理机制,我们可以更高效地管理和操作数据库中的数据。同时,在实际应用中需要注意一些技巧和安全问题,如避免SQL注入攻击、优化查询语句等。
有疑问加站长微信联系(非本文作者))