sql的查询–排序
(1)什么是排序
order by
(2)如何排序
首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句。
其次,order by写法:
- select 字段列表/* from 表名 where 条件 order by 字段名1 asc/desc, 字段名2
asc/desc,… - select 字段列表/* from 表名 where 条件 order by 字段序号 asc/desc, 字段序号 asc/desc,… (此时字段序号要从1开始)
- select 字段列表/* from 表名 where 条件 order by 字段别名1 asc/desc, 字段别名2 asc/desc,…(这里类似于第一种,无非就是把字段名加了个别名来代替而已.
然后,order by的方式:
1.asc 升序,可以省略,是数据库默认的排序方式
2.desc 降序,跟升序相反。
最后要注意order by的原则,写在最前面的字段,他的优先级最高,也就是写法中第一个的字段名1的优先级最高,优先执行他的内容。
>1、使用价格升序(降序),-->可以指定一个列
SELECT * FROM products ORDER BY price DESC;
>2、在价格排序(升序)的基础上,以分类排序(降序)-->可以指定多个列
SELECT * FROM products ORDER BY price ASC,category_id DESC;
>3、显示商品的价格(去重),并排序(降序),--》DISTINCT去掉重复
SELECT DISTINCT price FROM products ORDER BY price DESC;
(3)特点
- 指定列
- 指定升序或者降序
- order by 排序只对数字和英文字符串有效,对汉字无效
- 可以指定一个或者多个列作为排序条件
(4)字典顺序
admin about
sql的查询- 聚合函数
(1)什么是聚合函数?
聚合函数(类似于Java中的方法: 函数名())
(2)哪些是常用聚合函数?
五个聚合函数:
扫描二维码关注公众号,回复:
11901589 查看本文章
- count:统计指定列不为NULL的记录行数;(如:统计pname列的行数,如果有NULL值,则不统计)
- sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
- max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
- min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
- avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
(3)语句执行顺序
from ->where ->count(*)
>1 查询商品的总条数
SELECT COUNT(pname) FROM products; 统计pname列的行数,如果有NULL值,则不统计
SELECT COUNT(*) FROM products;
>2 查询价格大于200商品的总条数![在这里插入图片描述](https://img-blog.csdnimg.cn/20200923153435604.png#pic_center)
SELECT * FROM products WHERE price > 200;
>3 查询分类为2的所有商品的总和
SELECT SUM(price) FROM products WHERE category_id = 2;
>4 查询分类为'c002'所有商品的平均价格
SELECT AVG(price) FROM products WHERE category_id = 2;
>5 查询商品的最大价格和最小价格
SELECT MAX(price) '最大价格',MIN(price) '最小价格' FROM products;