SQL语句查询

##1. 排序
    通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。
    格式:

SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC;
	ASC 升序 (默认)
	DESC 降序

    (1)查询所有商品信息,使用价格排序(降序)

SELECT * FROM product ORDER BY price DESC;

    (2)在价格排序(降序)的基础上,以分类排序(降序)

SELECT * FROM product ORDER BY price DESC,category_id DESC;

     (3)显示商品的价格(去重复),并排序(降序)

SELECT DISTINCT price FROM product ORDER BY price DESC;

2. 聚合

    之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,他是对查询后的结果的列进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
    今天我们学习如下五个聚合函数:

count:统计指定列不为NULL的记录行数; sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

(1) 查询商品的总条数

SELECT COUNT(*) FROM product; 

(2) 查询价格大于200商品的总条数

SELECT COUNT(*) FROM product WHERE price > 200;

(3) 查询分类为’c001’的所有商品价格的总和

SELECT SUM(price) FROM product WHERE category_id = 'c001';

(4) 查询分类为’c002’所有商品的平均价格

SELECT AVG(price) FROM product WHERE category_id = 'c002';

(5) 查询商品的最大价格和最小价格

SELECT MAX(price),MIN(price) FROM product;

分组

    分组查询是指使用group by字句对查询信息进行分组。
    格式:

SELECT 字段1,字段2… FROM 表名GROUP BY分组字段 HAVING 分组条件;

    分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
    having与where的区别:
        having是在分组后对数据进行过滤.
            where是在分组前对数据进行过滤
        having后面可以使用统计函数过滤数据
            where后面不可以使用统计函数。
(1) 统计各个分类商品的个数

SELECT category_id ,COUNT(*) FROM product GROUP BY category_id ;

(2) 统计各个分类商品的个数,且只显示个数大于1的信息

SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;

分页查询

    分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条。
格式:

 SELECT 字段1,字段2... FROM 表明 LIMIT M,N
 M: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数
 N: 整数,表示查询多少条数据
 SELECT 字段1,字段2... FROM 表明 LIMIT 0,5
 SELECT 字段1,字段2... FROM 表明 LIMIT 5,5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值