DQL(Data Query Language,数据查询语言)是SQL语言的一个组成部分,专门用于从数据库表中检索数据的语言。DQL语句的核心是SELECT语句,它允许用户指定从一个或多个表中检索数据的条件和方式。DQL语句不会对数据库中的数据进行任何修改,只是将查询结果作为一个虚拟表返回给用户。
核心语法框架
SELECT [DISTINCT] 字段列表/通配符*
FROM 表名 [表别名]
[JOIN 关联表 [关联表别名] ON 关联条件] -- 多表关联查询
[WHERE 行筛选条件] -- 过滤行数据
[GROUP BY 分组字段] -- 按字段分组
[HAVING 分组筛选条件] -- 过滤分组结果
[ORDER BY 排序字段 [ASC/DESC]] -- 排序结果
[LIMIT 起始位置, 记录数]; -- 限制返回行数(部分数据库用TOP)
示例
1.基础查询
-- 查询所有字段
SELECT * FROM orders;
-- 查询指定字段并去重
SELECT DISTINCT user_id, status FROM orders;
2.条件筛选(WHERE)
-- 查询金额大于1000的已支付订单
SELECT order_id, amount
FROM orders
WHERE status = '已支付' AND amount > 1000;
3.排序(ORDER BY)
-- 按创建时间降序、金额升序排列
SELECT * FROM orders
ORDER BY create_time DESC, amount ASC;
4.分组与聚合(GROUP BY)
-- 按用户分组,统计每个用户的订单总数和总金额
SELECT user_id, COUNT(*) AS order_count, SUM(amount) AS total_amount
FROM orders
GROUP BY user_id
HAVING total_amount > 5000; -- 筛选总金额超5000的用户
5.多表关联(join)
-- 关联用户表查询订单所属用户名
SELECT o.order_id, u.username, o.amount
FROM orders o
INNER JOIN users u ON o.user_id = u.user_id;
6.限制结果(LIMIT)
-- 获取最近的10条订单
SELECT * FROM orders
ORDER BY create_time DESC
LIMIT 10;
5076

被折叠的 条评论
为什么被折叠?



