MySql - DQL [SELECT]

本文介绍了DQL数据库查询语句的基本结构和常用操作,包括SELECT从FROM开始的执行顺序,如何选择指定字段,使用WHERE过滤数据,运用ORDERBY进行排序,利用LIMIT限制返回结果的数量,以及GROUPBY进行数据分组和聚合函数的应用。示例代码详细展示了各种查询方法。
摘要由CSDN通过智能技术生成
------------------------------------
------------------------------------

-- DQL 数据库查询语句

------------------------------------
------------------------------------

-- SELECT
-- SELECT执行顺序 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT 的字段 -> DISTINCT -> ORDER BY -> LIMIT

 -- 查询users表中所有数据,返回所有列
SELECT * FROM users;

 -- 查询users表中所有数据,只返回指定字段列
SELECT `id`,`username`,`status`,`create_time` FROM users;

 -- 查询指定条件的数据 WHERE Field=VALUE...
SELECT * FROM users WHERE id = 1; -- 查询主键ID=1的数据记录
SELECT `id`,`username` FROM users WHERE id = 1; -- 查询主键ID=1的数据记录

 -- 对数据进行排序查询 ORDER BY
SELECT * FROM users ORDER BY id DESC; -- 按ID值进行大小的倒叙排序
SELECT * FROM users ORDER BY id ASC; -- 按ID值进行大小的升序排序-默认数据序列,自增字段升序查询的时候可以省略

-- 限制返回条数查询 LIMIT OFFSET, LENGTH
SELECT * FROM users LIMIT 3; -- 只查询前3条数据
SELECT * FROM users ORDER BY id DESC LIMIT 3; -- 只查询后3条数据[以主键ID倒序排序后取前三条]

-- 分组查询 GROUP BY

-- 直接使用GROUP BY会报错,关于sql_mode的错误 参考https://blog.csdn.net/ITxiaofeixiang/article/details/115635602
-- 使用group by 语句获取到的非group by子句中的字段,是没有意义的。按照规范来说,我们应该避免这种情况出现。
-- 使用分组的时候select 只需要查询分组字段就好,也不能ORDER BY其他字段, 可以WHERE
-- 不能查询其他字段但是可以使用聚合函数 count,sum等,也可以对聚合函数进行排序
SELECT `status` FROM users WHERE `id` > 2 GROUP BY `status`;
SELECT `status`,count(`id`) as count FROM users GROUP BY `status`;
SELECT `status`,count(`id`) as count FROM users GROUP BY `status` ORDER BY count DESC;

-- 排序ORDER BY
-- 对查询出的数据进行排序
SELECT * FROM users ORDER BY id DESC;

-- 限制返回数据行数 LIMIT offset,length
SELECT * FROM users ORDER BY id DESC LIMIT 10; -- 返回查出数据的前十条
SELECT * FROM users ORDER BY id DESC LIMIT 2, 10;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值