mysql ------(order by ,聚合函数,group by,limit)

大兔子大兔子 提交于 2019-12-10 14:11:37

-- 1:数据库的查询(排序:order by)
  -- SELECT * FROM 表名 ORDER BY 排序字段 ASC(升序)|DESC(降序);
  -- 1.1 使用价格排序:升序
     SELECT * FROM product ORDER BY price ASC;
     SELECT * FROM product ORDER BY price ;-- 默认就是升序
  -- 1.2 使用价格排序:降序```````
     SELECT * FROM product ORDER BY price DESC;
  -- 1.3 使用category_id排序:降序
     -- 如果是对字符串排序,则使用的是字典顺序: admain   about;
     SELECT * FROM product ORDER BY category_id ASC;
  -- 1.4 使用pname排序:升序
    SELECT * FROM product ORDER BY pname ASC;
    -- order by 排序只对数字和英文字符串有效,对汉字无效
    
  -- 1.5 在价格排序(降序)的基础上,以分类排序(降序)  
     SELECT * FROM product ORDER BY price DESC, category_id DESC;
  -- 1.6 显示商品的价格(去重复 distinct),并排序(降序)
     SELECT DISTINCT price FROM product ORDER BY price DESC;


-- 2:聚合函数(类似于Java中的方法: 函数名())    
    -- 2.1 count 统计
     #1 查询商品的总条数
     SELECT COUNT(pname) FROM product; -- 统计pname列的行数,如果有NULL值,则不统计
     SELECT COUNT(*) FROM product; 
     #2 查询价格大于200商品的总条数
     SELECT * FROM product WHERE price > 200;
     -- from  --->where --->count(*)
     SELECT COUNT(*) FROM product WHERE price > 200;
    
   -- 2.2 sum 求和
     -- 求和只能求数值类型
     #1 查询分类为'c001'的所有商品的价格总和 
     SELECT SUM(price) FROM product WHERE category_id = 'c001';
     
   -- 2.3 avg 平均
     #1 查询分类为'c002'所有商品的平均价格
     SELECT AVG(price) FROM product WHERE category_id = 'c002';
   -- 2.4 max min
     #1 查询商品的最大价格和最小价格
     SELECT MAX(price) '最大价格',MIN(price) '最小价格' FROM product;
    

    -- select只负责将查询的结果显示 
-- 3:分组查询(group by )
   -- SELECT 字段1,字段2… FROM 表名 GROUP BY 分组字段 HAVING 分组条件;
   -- #1 统计各个分类商品的个数
         -- from  --->group by
   SELECT category_id, COUNT(*) FROM products1 GROUP BY category_id;
   -- #2 统计各个分类商品的个数,且只显示个数大于3的信息
   -- from ----> group by ---> count(*)  --->having  ---> select
   SELECT category_id, COUNT(*) 'c' FROM products1
   WHERE price >200  GROUP BY category_id HAVING c > 1;  
   
-- 4:分页显示(limit) 
   -- SELECT 字段1,字段2... FROM 表明 LIMIT M,N    (M:表示从哪一行的索引(从0开始)开始显示,N表示要显示几行)
   -- #1 显示prouct表的前5行
    SELECT * FROM products1 LIMIT 0,5;   -- 第一页,从1开始,有五行数据
    SELECT * FROM products1 LIMIT 5,5;   -- 第二页,从6开始,有五行数据
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!