zoukankan      html  css  js  c++  java
  • select的5中子句where,group by, havaing, order by, limit的使用顺序及实例

    -- 语法:

    SELECT select_list    
    FROM table_name   
    [ WHERE search_condition ]   
    [ GROUP BY group_by_expression ]   
    [ HAVING search_condition ]   
    [ ORDER BY order_expression [ ASC | DESC ] ] 
    [limit m,n] 
    

      

      
    -- 示例:
    -- limit 0,10是从第一条开始,取10条数据
    select classNo  from table_name  
    group by classNo   
    having(avg(成绩)>70) 
    order by classNo  
    limit 0,10
    

      

     
    说明:

    1.where 

    where后跟条件用来筛选我们所需的行。它后面可以跟的操作符有=、!=、<、>、<=、>=、 in、 like(可以和通配符%结合一起用,效果将会更好) 、between....and........ AND、OR 、NOT 

    如:select id,name,score form student where score in (每组里面的最高分组合); 

    2.group by(GROUP BY 语句用于结合合计函数(也叫聚合函数sum count avg max min),根据一个或多个列对结果集进行分组。否则没有多大的意义)

    group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
    
    如:我们对文字的分类id进行分组,查询每组分类的文章数 select articlecategory_id,count(*) from article group by articlecategory_id;
    再次提示:
    如果你使用了group by,而没有相应的使用聚合函数那么结果就没有意义了,按照实际情况来思考的话就变成了一对多了(也就是一个分组对应多个对象(也就是多行),那么一个分组对应多行数据的显示就变成了分组和第一行数据进行显示了,所以此时我们应该使用聚合函数(聚合函数就是把多个变成一),也就是对多行数据进行筛选,得到我们想要的数据,如:可以使用count计算论坛小组总帖子数,可以使用sum来计算
    论坛小组帖子总回复数,可以使用max来计算论坛小组最多回复的帖子,可以使用min来计算论坛小组最少回复数(没有多大意义,商城最便宜的商品就意义了),可以使用avg来计算论坛每周的平均访问量(商城所有商品的平均价格)等。
    
    

    3.having 这个是针对查询的结果进行作用,只能对结果拥有的列进行操作,与where不同的是where是针对原表(就是from后面的那张表的字段)发挥作用。其中having里面可以使用聚合函数。为group by子句设置条件,类似于where为select语句设置条件的方法。having的查找条件可以包括集合函数表达式。除此之外,它的查找条件与where查找条件相同。

    select articlecategory_id,count(*) from article group by articlecategory_id having count(*)<5;

    4.order by 排序 (可以对多个字段进行排序)

    可以针对字段进行排序,order by 字段1 [asc] 升序,[desc] 降序

    5.limit 获取条目的限定

    语法 limit offset,N

    limit 5 《====》 limit 0,5;

    总结:where是针对from后面跟的表进行处理,而group by having order by limit则是针对select后面的字段进行处理。从它们的结构角度来看则:先整体后部分。
  • 相关阅读:
    CF666E Forensic Examination 广义后缀自动机 + 线段树合并 + 树上倍增
    NOI2018 你的名字 后缀自动机 + 线段树合并 + 可持久化
    [NOI2018]你的名字(68pts) 后缀自动机
    [SDOI2016]生成魔咒 后缀自动机
    洛谷P3369 【模板】普通平衡树 01trie/骚操作
    BZOJ2161: 布娃娃 整体二分
    超市购物功能,会员卡功能,会员卡积分查询功能,会员卡奖品功能,自己练手函数程序
    可变长参数,函数的嵌套,名称空间,关键字
    函数基础,函数返回值,函数调用的3中方式,形参与实参
    文件的详细操作
  • 原文地址:https://www.cnblogs.com/billyu/p/5033167.html
Copyright © 2011-2022 走看看