zoukankan      html  css  js  c++  java
  • mysql随笔 -- 基本sql语句

    常见查询语句:

    select  ....  from .... where  .. group by ... having ... order by .. limit...

      输出  获取数据     过滤    分组    过滤       排序   限定个数 

    以上为书写顺序,以下为执行顺序:

    from  ->  where -> group by - >select - > having -> order by -> limit

    例如:在select中定义的别名,在其之前是不能出现的;在之后可以再利用。

    group by分组:

    select * from 表名 group by 字段

    表示该表的字段进行分组查询时,只输出该字段分组下的第一个出现的数据。

    group by与聚合函数count()

    出现select count(1) ,classId from stu group by classId,则输出结果为

    分组后的对应的和

    对比select count(name),如果name中有null,那么count不会记录null直接跳过,判断下一个是否为Null,其他情况二者一致。

    select count(distinct name) from stu group by classId

    表示按classId分完组后,各自除去相同名字后累加的行数。

    聚集函数:

    count  --计数

    sum  -- 求和

    max  -- 最大值

    min -- 最小值

    avg -- 平均值

    group - concat 

     truncate 表名;//清空表的内容

    mysql中 group by的执行机制是先对分组的字段进行排序的,默认升序的

    select * from mysql_day1 GROUP BY clid DESC; //改成降序的

    having :有时候限定分组条件比对元组限定条件更有用

    例:select classId from mysql_day1 group by clid having count(1)>2

    实现查询班级人数大于2的班级号

    order by: 对结果集进行排序;

    例如: order by clid,id;

    先对clid排序,再对id排序(后一个在前一个相同的情况下才排序)

    case when ..then..用法:

    case when 与聚集函数:

    若想查找成

    利用分组group by后,重新写出三列,利用case when 实现

    select name,
    max(case when stage = '基础' THEN score ELSE NULL END)as '基础',
    max(case when stage = 'sql' THEN score ELSE NULL END)as 'sql',
    max(case when stage = 'web' THEN score ELSE NULL END)as 'web'
    from scores group by name

    注意: 使用聚合函数max的目的是找出分组后的各个字段对应的值

  • 相关阅读:
    Mac下发布Unity3d中Android平台下出现“android (invokation failed)”的错误
    图片切换特过渡效果
    文件下载
    ASP.NET前台绑定后台变量方法总结
    C# aspx 数据绑定集中 Bind Eval DataBinder.Eval
    MVC 3 Excel文件下载
    ASP.NET中Get和Post的用法 Request.QueryString,Request.Form,Request.Params的区别
    删除掉前一天文件夹里面的文件
    友情链接
    博客园管理记录
  • 原文地址:https://www.cnblogs.com/fjwjw/p/11507294.html
Copyright © 2011-2022 走看看