admin管理员组

文章数量:1794759

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

数据库学习(五)—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 🧐练习:
  • 查询所有学生的最大年龄。最小年龄,平均年龄 select max(age) from students; select min(age) from students; select avg(age) from students

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

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

    本文标签: 函数数据查询数据库SQLamp