8.MySql排序 聚合函数 分组 和 Limit关键字(零碎难懂知识点)

本文详细介绍了MySQL中的排序操作,包括ASC和DESC的使用,以及多列排序的示例。接着讲解了聚合函数,如COUNT、AVG、MAX、MIN和SUM的用法,并演示了带有WHERE条件的查询。分组查询通过GROUP BY语句实现,结合HAVING条件过滤数据。最后,讨论了LIMIT关键字在分页查询中的应用,展示了不同参数的使用方式和分页计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.排序

SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC]

-- ASC 表示升序排序(默认)
-- DESC 表示降序排序

//单列排序
SELECT * FROM course_section ORDER BY course_id; 默认为升序 仅仅按照一个信息排序

// 多列排序  先对course_id 进行升序排列 相同的再按照 id 进行降序排序 参考图如下图所示
SELECT * FROM course_section ORDER BY course_id ASC, id DESC;

2.聚合函数(纵向查询)

1 语法

SELECT 聚合函数(字段名) FROM 表名;

 (1) 查询id总个数

//

SELECT COUNT(*) FROM course_section; -- 使用 *
SELECT COUNT(1) FROM course_section; -- 使用 1,与 * 效果一样
SELECT COUNT(id) FROM course_section ;

//

使用时注意不要使用带有null的列进行统计

 (2) 平均 最高 最低 总和

SELECT 
SUM(course_id) AS '总和' ,
AVG(course_id) AS '平均' ,
MIN(course_id) AS '最小' ,
MAX(course_id) AS '最大' 
FROM course_section;

 (3) 也可以在后面添加where条件  尽新歌声查询 比如查询course_id>10的个数:

SELECT COUNT(1) FROM course_section WHERE course_id >10;

 3.分组

分组查询指的是使用 GROUP BY 语句,对查询的信息进行分组,相同数据作为一组

SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 分组字段 [HAVING 条件];

//查询有多少种描述
SELECT description FROM course_section GROUP BY description;

查询平均id大于10的 课程名称,需要分组后再进行过滤。

SELECT section_name , AVG(course_id) FROM course_section WHERE section_name IS NOT NULL 
GROUP BY section_name HAVING AVG(course_id) >10;

4.Limit关键字

limit 关键字的作用

    limit是限制的意思,用于 限制返回的查询结果的行数 (可以通过limit指定查询多少行数据)
    limit 语法是 MySql的方言,用来完成分页

语法结构

SELECT 字段1,字段2... FROM 表名 LIMIT offset , length;

    limit offset , length; 关键字可以接受一个 或者两个 为0 或者正整数的参数
    offset 起始行数, 从0开始记数, 如果省略 则默认为 0.
    length 返回的行数

# 查询emp表中的前 5条数据
-- 参数1 起始值,默认是0 , 参数2 要查询的条数
SELECT * FROM course_section LIMIT 5;
SELECT * FROM course_section LIMIT 0 , 5;
# 查询emp表中 从第4条开始,查询6条 -- 起始值默认是从0开始的.
SELECT * FROM course_section LIMIT 3 , 6;

# 分页查询

-- 分页操作 每页显示3条数据
SELECT * FROM course_section LIMIT 0,3; -- 第1页
SELECT * FROM course_section LIMIT 3,3; -- 第2页 2-1=1 1*3=3
SELECT * FROM course_section LIMIT 6,3; -- 第三页

-- 分页公式 起始索引 =(当前页 -1)* 每页条数
-- limit是MySql中的方言

 

*****表数据,可以先创建一个数据库然后执行建表。

CREATE TABLE `course_section` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `course_id` int(11) NOT NULL COMMENT '课程id',
  `section_name` varchar(255) NOT NULL COMMENT '章节名',
  `description` varchar(255) NOT NULL COMMENT '章节描述',
  `last_operator` varchar(255) DEFAULT NULL COMMENT '最后操作者',
  `create_time` datetime NOT NULL COMMENT '记录创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `is_visible` tinyint(1) DEFAULT '1' COMMENT '是否可见',
  `is_del` tinyint(4) DEFAULT NULL COMMENT '是否删除 0-未删除,1-已删除',
  `order_num` int(11) DEFAULT NULL COMMENT '排序字段',
  `last_operator_id` int(11) DEFAULT NULL COMMENT '最后操作者ID',
  `status` int(1) DEFAULT NULL COMMENT '状态,0:隐藏;1:待更新;2:已发布',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `course_id_index` (`course_id`) USING BTREE,
  KEY `idx_course_id` (`course_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8;

/*Data for the table `course_section` */

insert  into `course_section`(`id`,`course_id`,`section_name`,`description`,`last_operator`,`create_time`,`update_time`,`is_visible`,`is_del`,`order_num`,`last_operator_id`,`status`) values 

(1,1,'第一章 Java基础必考点','基础阶段所有面试题','1','2019-01-23 20:35:47','2020-07-22 21:02:00',0,0,1,100011619,0),

(2,2,'300分钟搞定算法面试','算法功底决定Offer质量','1','2019-06-19 11:59:14','2020-06-22 19:41:26',0,0,3,NULL,0),

(3,3,'如何高效准备简历和面试','如何高效准备简历和面试','1','2019-07-04 12:13:27','2019-09-04 17:21:53',0,0,4,100011619,2),

(4,4,'高性能MySQL实战','高性能MySQL实战','1','2019-07-11 10:55:10','2019-10-09 12:43:01',0,0,5,100011619,2),

(5,10,'麻式太极第一章','麻式太极拳,你动我试试','1','2019-07-11 10:55:10','2019-10-09 12:43:01',0,0,5,100011619,2),

(6,19,'微服务架构最新版','跟着药水一起学习如何使用微服务架构最新版',NULL,'2020-06-22 16:33:59','2020-06-22 17:59:04',1,NULL,0,NULL,1),

(26,0,'123','213',NULL,'2020-07-01 17:31:31','2020-07-01 17:31:31',1,NULL,123,NULL,2),

(27,0,'马鞍路','2321',NULL,'2020-07-01 17:33:59','2020-07-01 17:33:59',1,NULL,12,NULL,2),

(28,0,'32','12321',NULL,'2020-07-01 17:42:38','2020-07-01 17:42:38',1,NULL,1231,NULL,2),

(29,10,'1233顾地科技的','23211232132132',NULL,'2020-07-01 17:42:55','2020-07-01 19:27:37',1,NULL,12,NULL,2),

(30,10,'麻式太极第一章他官方  ','麻式太极拳,你动我试试1111  ',NULL,'2020-07-01 19:20:50','2020-07-01 19:27:12',1,NULL,5,NULL,2),

(31,10,'麻式太极第一章他官方店官方店方法','麻式太极拳,你动我试试 人让广大',NULL,'2020-07-01 19:22:42','2020-07-01 19:22:42',1,NULL,5,NULL,2),

(32,59,'第一章 Vue.js 介绍','我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用 <script> 标签引入。',NULL,'2020-07-08 14:57:01','2020-07-20 18:57:06',1,NULL,1,NULL,0),

(33,59,'第二章 Vue.js 基础','上一章节中我们使用了 npm 安装项目,我们在 IDE(Eclipse、Atom等) 中打开该目录',NULL,'2020-07-08 14:58:07','2020-07-08 17:03:23',1,NULL,2,NULL,2),

(34,59,'第三章 Vue.js 起步','每个 Vue 应用都需要通过实例化 Vue 来实现。\n\n',NULL,'2020-07-08 14:58:36','2020-07-20 18:57:17',1,NULL,3,NULL,1),

(35,59,'第四章 Vue.js 高级','Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。',NULL,'2020-07-08 14:59:00','2020-07-08 14:59:00',1,NULL,4,NULL,2),

(36,45,'啦啦1地方','发放的说法是否放到放到啊',NULL,'2020-07-08 16:22:21','2020-07-08 17:02:32',1,NULL,2,NULL,2),

(37,47,'01 三脚猫','地方大发a',NULL,'2020-07-08 17:22:33','2020-07-08 17:22:33',1,NULL,2,NULL,2),

(38,46,'第一种 抽烟','如何学会抽烟',NULL,'2020-07-08 18:19:13','2020-07-08 18:19:13',1,NULL,1,NULL,2),

(39,46,'第二种 喝酒','喝酒如何不醉',NULL,'2020-07-08 18:19:36','2020-07-08 18:19:36',1,NULL,2,NULL,2),

(41,19,'微服务架构1111','跟着药水一起学习如何使用微服务111',NULL,'2020-07-09 16:12:16','2020-07-09 17:27:24',1,NULL,0,NULL,2),

(42,19,'大数据架构1111','跟着药水一起学习如何使用微服务111',NULL,'2020-07-09 17:28:24','2020-07-09 17:28:24',1,NULL,0,NULL,2),

(43,19,'微服务架构123456','跟着药水一起学习如何使用微服务',NULL,'2020-07-09 19:54:33','2020-07-09 19:56:01',1,NULL,0,NULL,0),

(44,1,'第二章 JavaWeb阶段所有面试必考点','JavaWeb阶段所有面试必考点',NULL,'2020-07-20 16:30:31','2020-07-22 21:02:05',1,NULL,2,NULL,2),

(45,1,'第三章 SSM框架阶段所有必考点','SSM框架阶段所有必考点',NULL,'2020-07-20 19:29:14','2020-07-22 21:02:09',1,NULL,3,NULL,0),

(48,46,'第三种 烫头','第三种 烫头',NULL,'2020-07-22 15:32:09','2020-07-22 15:32:54',1,NULL,3,NULL,2),

(49,46,'第四种','第四种 做饭',NULL,'2020-07-22 15:43:02','2020-07-22 15:43:02',1,NULL,0,NULL,2),

(50,46,'第四种 游泳','第四种 做饭',NULL,'2020-07-22 15:43:50','2020-07-22 15:44:07',1,NULL,5,NULL,2),

(51,61,'第一式 葵花点穴手','葵花点穴手',NULL,'2020-07-22 15:45:17','2020-07-22 15:45:17',1,NULL,1,NULL,2),

(52,45,'大富','发发达',NULL,'2020-07-22 15:45:32','2020-07-22 15:45:32',1,NULL,0,NULL,2),

(53,1,'123123','12321312',NULL,'2020-07-22 16:33:24','2020-07-22 16:33:24',1,NULL,11,NULL,2),

(54,1,'第五章 项目面试题','项目面试题',NULL,'2020-07-22 16:33:56','2020-07-22 17:31:31',1,NULL,0,NULL,2),

(55,19,'微服务架构','跟着药水一起学习如何使用微服务',NULL,'2022-06-02 14:57:26','2022-06-02 14:57:26',1,NULL,0,NULL,2),

(56,19,'微服务架构','跟着药水一起学习如何使用微服务',NULL,'2022-06-02 15:03:27','2022-06-02 15:03:27',1,NULL,0,NULL,2),

(57,75,'刺客五六七','跟着药水一起学习如何使用微服务',NULL,'2022-06-02 15:05:08','2022-06-02 15:05:08',1,NULL,0,NULL,2),

(58,75,'刺客五六七','跟着药水一起学习如何使用微服务',NULL,'2022-06-02 15:08:05','2022-06-02 15:08:05',1,NULL,0,NULL,2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值