DML、DQL、DDL的区别

在数据库操作中,DML、DQL 和 DDL 是三种不同类型的 SQL 命令,它们的功能和用途有明显区别:

1. DML(Data Manipulation Language)

数据操纵语言,用于操作数据库中的数据(增删改)。

常见命令:

INSERT: 向表中插入数据。

INSERT INTO users (name, age) VALUES ('Alice', 30);

UPDATE: 修改表中的数据。

UPDATE users SET age = 31 WHERE name = 'Alice';

DELETE: 删除表中的数据。

DELETE FROM users WHERE age > 40;

特点:

  • 操作对象:表中的数据记录。
  • 事务影响:通常需要事务支持(如 MySQL 的 START TRANSACTION),可回滚。
  • 返回结果:影响的行数(如 1 row affected)。

2. DQL(Data Query Language)

数据查询语言,用于从数据库中查询数据。

核心命令:

SELECT: 查询数据。

SELECT name, age FROM users WHERE age < 35;

特点:

  • 操作对象:表中的数据记录。
  • 事务影响:只读操作,不修改数据,无需事务。
  • 返回结果:查询结果集(表格形式)。
  • 扩展性:常与聚合函数(如 COUNT、SUM)、排序(ORDER BY)、分组(GROUP BY)等结合使用。

3. DDL(Data Definition Language)

数据定义语言,用于定义和管理数据库的结构(表、索引、视图等)。

常见命令:

CREATE:创建数据库对象(如表、索引)。

CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));

ALTER: 修改数据库对象结构。

ALTER TABLE users ADD COLUMN email VARCHAR(100);

DROP: 删除数据库对象。

DROP TABLE users;

TRUNCATE: 清空表数据(保留表结构)。

TRUNCATE TABLE users;

特点:

  • 操作对象:数据库的结构(如表格、索引)。
  • 事务影响:通常不可回滚(执行即生效)。
  • 返回结果:成功 / 失败信息(如 Query OK)。

对比总结

类别 操作对象 主要命令 是否修改数据 是否可回滚
DML 表中的数据记录 INSERT、UPDATE、DELETE 是(需事务)
DQL 表中的数据记录(只读) SELECT
DDL 数据库的结构(表、索引等) CREATE、ALTER、DROP

示例对比
1.DML(修改数据):

-- 修改用户年龄(DML)
UPDATE users SET age = 25 WHERE id = 1;

2.DQL(查询数据):

-- 查询年龄大于20的用户(DQL)
SELECT * FROM users WHERE age > 20;

3.DDL(修改结构):

-- 添加新字段(DDL)
ALTER TABLE users ADD COLUMN created_at TIMESTAMP;

其他相关概念

DCL(Data Control Language): 数据控制语言,用于管理权限(如 GRANT、REVOKE)。
TCL(Transaction Control Language): 事务控制语言,用于管理事务(如 COMMIT、ROLLBACK)。

posted @ 2025-05-20 16:38  ꧁༺星星的轨迹方程式༻꧂  阅读(119)  评论(0)    收藏  举报