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');
这将找出所有有已完成订单的用户。