生命之风的低语
Whispers in the Wind of Life.

MySQL DML(数据操作语言)全面指南

2025-11-04 07:06:50

MySQL DML(数据操作语言)全面指南

MySQL的数据操作语言(DML,Data Manipulation Language)是SQL中用于操作数据库中数据的核心部分。它主要包括插入(INSERT)、更新(UPDATE)、删除(DELETE)以及查询(SELECT)数据的操作。本文将详细讲解这些基本DML命令的使用方法,并通过实例代码让你快速掌握它们的精髓。

一、插入数据(INSERT)

INSERT语句用于向表中插入新的数据记录。

基础插入

INSERT INTO users (username, email)

VALUES ('John Doe', 'john.doe@example.com');

上述命令在users表中插入了一条新记录,指定了username和email字段的值。

批量插入

如果你想一次插入多条记录,可以这样做:

INSERT INTO users (username, email)

VALUES ('Jane Smith', 'jane.smith@example.com'),

('Jim Brown', 'jim.brown@example.com');

二、更新数据(UPDATE)

UPDATE语句用于修改表中已存在的记录。

UPDATE users

SET email = 'new.email@example.com'

WHERE username = 'John Doe';

此命令将users表中username为'John Doe'的用户的email字段更新为'new.email@example.com'。

三、删除数据(DELETE)

DELETE语句用于从表中删除记录。

DELETE FROM users

WHERE email = 'old.email@example.com';

这将删除users表中所有email为'old.email@example.com'的记录。

四、查询数据(SELECT)

SELECT是最常用的DML命令,用于从表中检索数据。

基础查询

SELECT * FROM users;

此命令返回users表中的所有记录和字段。

条件查询

SELECT username, email FROM users

WHERE age > 18;

仅显示年龄大于18岁的用户的username和email。

排序与限制

SELECT * FROM users

ORDER BY age DESC

LIMIT 10;

按年龄降序排列,并只显示前10条记录。

聚合函数

SELECT COUNT(*) FROM users;

计算users表中的记录总数。

分组与HAVING

SELECT gender, COUNT(*) as total_users

FROM users

GROUP BY gender

HAVING total_users > 50;

按性别分组,显示每个性别用户数超过50人的统计。

五、联接查询(JOIN)

联接查询用于从两个或更多表中检索相关数据。

SELECT users.username, orders.order_id

FROM users

INNER JOIN orders ON users.id = orders.user_id;

此查询通过用户ID联接users和orders表,显示每个用户的最近订单信息。

六、子查询

子查询是嵌套在另一个查询中的查询,用于作为外部查询的条件或数据来源。

SELECT * FROM users

WHERE id IN (SELECT user_id FROM orders WHERE status = 'completed');

这将找出所有有已完成订单的用户。