数据库学习(五)—SQL数据查询02(排序&聚合函数)

目录

3.3 排序

3.3.1 解释:

3.3.2 语法:

3.3.3 说明: 

🧐3.3.4 例子: 

🧐3.3.5 练习:

3.3.6 ❗注意事项   

 3.3.7 汇总

 3.4 聚合函数

3.4.1  count(*)表示计算总行数

3.4.2 max(列)表示求此列的最大值

3.4.3  min(列)表示求此列的最小值

​ 3.4.4 sum(列)  表示求此列的和 

3.4.5  avg(列) 表示求此列的平均值

3.4.6 🧐练习:


3.3 排序

3.3.1 解释:


为了方便查看数据,可以对数据进行排序

navicat 数据表中自带有升序,降序

3.3.2 语法:

select * from 表名 order by 列1 ase|desc, 列2 asc|desc,.

3.3.3 说明: 

  • 将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序。以此类推
  • 默认按照列值从小到大排列
  • asc从小到大排列。即升序
  • desc从大到小排序。即降序

🧐3.3.4 例子: 

例1:查询所有学生信息,按年龄从小到大排序

--正序:
--默认不写asc 是正序
--select *from students order by age 
select *from students order by age asc

--倒序
select *from students order by age desc


例2:查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大搏序

--select * from students order by age desc,studentNo  
select * from students order by age desc,studentNo  asc


🧐3.3.5 练习:


1.查询所有学生信息,按班级从小到大排序,班级相同时,再按学号从小到大排序

select * from students order by class ,studentNo  

3.3.6 ❗注意事项   

问:如果是名字?

select * from students order by nane

 

ANS:名字来排,是乱序,因为名字是utf8的格式,没有按照中文来进行排序 

解决:

select * from students order by convert(nane using gbk)

 3.3.7 汇总

排序
例1:查询所有学生信息,按年龄从小到大排序
select * from students order by age

例2:查询所有学生信息,按年龄从大到小排序。年龄相同时,再按学号从小到大排序
select * from studenti order by age desc,studentNo

对中文字段进行排序
select *from students order by convert(name using gbk)

 3.4 聚合函数

 统计表中数据

  • ·为了快速得到统计数据,经常会用到如下5个聚合函数
  •  count(*)表示计算总行数,括号中写星与列名。结果是相同的
  • 聚合函数不能在where中使用

3.4.1  count(*)表示计算总行数

🧐例1∶查询学生总数

select count(*) from students

select count(nane, age) from students


> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', age) from students' at line 1
> 时间: 0s

注意:

  • count里面可以写 *  ,count(*) ——以所有行来统计的,只要这一行有值就统计在内,count(*)比count(字段)更好
  • 不能写指定的多个字段,也可以写单个字段,
  • 为null不统计在内。
select count(nane) from students

为null不统计在总数内。

select count(card) from students


3.4.2 max(列)表示求此列的最大值

🧐例2:查询女生的最大年龄

select max(age) from  students where sex = '女'

执行顺序:

         求某个字段的max, 先 从什么表查(执行from),在执行条件(执行where),执行条件完(执行select),在返回结果的基础上进行select的操作


3.4.3  min(列)表示求此列的最小值

🧐例3:查询1班的最小年龄

select min(age) from  students where class = '1班'


 3.4.4 sum(列)  表示求此列的和 

 🧐例4∶查询北京学生的年龄总和

select sum(age) from  students where hometown = '北京'

3.4.5  avg(列) 表示求此列的平均值


🧐例5:查询女生的平均年龄

select avg(age) from  students where sex = '女'


3.4.6 🧐练习:

  1. 查询所有学生的最大年龄。最小年龄,平均年龄
    
    select max(age) from  students;
    select min(age) from  students;
    select avg(age) from students

  2. 一班共有多少个学生
    select count(*) from  students

  3. 查询3班年龄小于18岁的同学有几个
select count(*) from  students where age < 18 and class = '3班'

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值