首页 > 编程语言 >JavaWeb学习日记2022.10.13

JavaWeb学习日记2022.10.13

时间:2022-10-13 20:56:58浏览次数:46  
标签:13 JavaWeb -- 查询 stu math sex 2022.10 SELECT

排序查询(P13)

/* 排序查询 SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]...;
排序方式
ASC:升序排列(默认值)
DESC:降序排列
*/
-- 1.查询学生信息,按照年龄升序排列
SELECT * FROM stu order by age asc;

-- 2.查询学生信息,按照数学成绩降序排列
SELECT * FROM stu order by math desc;
-- 3.查询学生信息,按照数学成绩降序排列,如果数学成绩一样,按照英语成绩升序排列
SELECT * FROM stu order by math desc,English asc;

如果有多个排序条件,只有第一个条件相同时才会启动第二个排序条件

 

聚合函数&分组查询

聚合函数语法:

!!!所有的NULL值都不能参与聚合函数的计算

举例来说 一列英语成绩分别为 10 20 30 40 50 空

找最小值的时候会

SELECT MIN(English) FROM stu;

stu为表名

会找到最小值为10而不是空

SELECT 聚合函数名(列名) FROM 表;

COUNT()统计的列名不能为空

/*
* COUNT 求数量 统计的列名不能为空
* 取值:(不能为空的解决办法)
1.主键
2. *(建议)
* MAX 求最大值
* MIN 求最小值
* SUM 求和
* AVG 求平均值
*/
-- 1.统计班级一共有多少个学生
SELECT COUNT(*) FROM stu; -- count统计的列名不能为空
-- 2.查询数学成绩的最高分
SELECT MAX(math) FROM stu;
-- 3.查询数学成绩的最低分
SELECT MIN(math) FROM stu;
-- 4.查询数学成绩的总分
SELECT SUM(math) FROM stu;
-- 5.查询数学成绩的平均分
SELECT AVG(math) FROM stu;
-- 6.查询英语成绩的最低分
SELECT MIN(English) FROM stu;

 

分组查询语法

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤]

注意:分组之后查询的字段是聚合函数和分组字段,查其他内容无意义

 

 例如 按性别分组分为男女 在查询的时候

SELECT name,sex, AVG(math) FROM stu GROUP BY sex;

查询了不参与分组的name 产生了如上图所示的结果是没有意义的

-- 1.查询男同学和女同学各自的数学平均分


SELECT sex, AVG(math) FROM stu GROUP BY sex;
SELECT name,sex, AVG(math) FROM stu GROUP BY sex;

-- 2.查询男同学和女同学各自的数学平均分以及各自的人数
SELECT sex, COUNT(*),AVG(math) FROM stu GROUP BY sex;
-- 3.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组
SELECT sex, COUNT(*),AVG(math) FROM stu WHERE math>70 GROUP BY sex;
-- 4.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组后人数大于2
SELECT sex, COUNT(*),AVG(math) FROM stu WHERE math>70 GROUP BY sex HAVING COUNT(*)>2;

!!!!where 和 having的区别

1.执行时机不一样,where是分组之前进行限定,不满足where条件则不参与分组,而having是分组之后对结果进行过滤

2.可判断的条件不一样 where不能对聚合函数进行判断,having可以

执行顺序为 where>聚合函数>having

 

分页查询

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数

起始索引:从0开始

SELECT * FROM stu;
-- 1.从0开始查询,查询3条数据
SELECT * FROM stu LIMIT 0,3;
-- 2.每页显示3条数据,查询第1页数据
SELECT * FROM stu LIMIT 0,3;
-- 3.每页显示3条数据,查询第2页数据
SELECT * FROM stu LIMIT 3,3;
-- 4.每页显示3条数据,查询第3页数据
SELECT * FROM stu LIMIT 6,3;

-- 起始索引=(当前页码-1)*每页的条目数!!!!!!!!

注意:limit是MySQL的方言,其他数据库不同

 

标签:13,JavaWeb,--,查询,stu,math,sex,2022.10,SELECT
From: https://www.cnblogs.com/Arkiya/p/16789559.html

相关文章

  • 【图床】2022.10.08——雨夜西湖
    水汽浩荡,自屋后腾起。做个梦吧……时间:2021.12.09地点:湖滨同行:Hql设备:a7r3a+G24105F4调整后效果最为惊艳的一张图,r3的锐度和宽容度得以让我大幅度的调整光线、依......
  • 【闲话】2022.10.13
    今天……没有考试!Bk:就像回到了家一样。不用说,这就是家旁边。headto_cdqandAKNOIP:题我改不出来怎么办,我对着题解改的,就差把它们并到一起了'bikuhiku':你不要对着题解......
  • 2022-10-13学习内容
    1.ImageView1.1activity_image_scale.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"an......
  • 13. 享元模式
    [实验任务一]:围棋设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。类图代码java代码packagetest13;publiccla......
  • 10.13
    今日内容1.算法简介及二分法2.三元表达式3.各种生成式/表达式/推导式4.匿名函数5.常见内置函数1.算法简介及二分法1.算法是解决问题的方法,不是所有的算法都很高效,也......
  • 工控资讯 | 众志成城 战“疫”到底,科氏130亿收购Infor,西门子11亿欧元豪购,长城3亿美元
    01新冠疫情武汉封城19天致敬英雄​截至2月10日19时,现有确诊病例40261例,累计死亡909例,累计治愈出院3494例,现有疑似病例23589例。哪有从天而降的英雄,只有挺身而出的凡人!做好......
  • 2022.10.13 CSP2022 模拟赛三
    Source:JOI2018FinalT2-T5绝了会最后一题不会T2,麻了。美术展览显然的事情:在规定\(A\)的值域\([l,r]\)之后,对于所有\(A_i\in[l,r]\),都选进来一定最优。按\(A......
  • 2022-10-13 uniapp h5端 canvas绘图显示空白
    原因:图片跨域or业务中存在undefined变量,请保证前端img添加了crossorigin="Anonymous"以及后端允许跨域。吐槽:这个问题,真的是。。。。****。嗯,以前做小程序,没出现这种问题......
  • 闲话 22.10.13
    闲话压位trie怎么实现?哪天写一个好于是今天卡了一天的常数然后lyin十分钟给切了没什么要写的诶今天哦对了今天中午换起床歌了瑞苹不如新宝岛谁有什么很诡异的题来......
  • 10月13日内容总结——算法之二分法、三元表达式和各种生成式及匿名函数、部分常见内置
    目录一、算法简介之二分法(需要写的出来)简介什么是算法二分法二、三元表达式什么是三元表本质?三元表达式语法结构三、各种生成式列表生成式字典生成式集合生成式元组生成器(......