• sql语法提高


    1. 一个select语句的执行顺序
        a:from clause
        b:where clause
        c:group by clause
        d:select clause
        e:having clause
        f:order by clause
     
    2.分组查询
        在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数     中。
     
    3. whare 和 having的区别    
    • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
    • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
     
    4. Union VS Union All
        a:Union 会把两个结果集排序,并且除去重复的元素(效率差,轻易不要用)
        b:Union All仅仅是把两个结果集合并,没有排序,也不去除重复元素(效率好)
     
    5. 尽量不要使用 is null 与 is not null作为查询条件
      任何包含null值的列都将不会被包含在索引中,如果某列数据中存在空值,那么对该列建立索引的性能提升是值得怀疑的,尤其是将null作为查询条件 的一部分时。建议一方面避免使用is null和is not null, 另一方面不要让数据库字段中存在null, 即使没有内容,也应利用缺省值,或者手动的填入一个值,如:’’ 空字符串。
     
    函数作用支持性
    sum(列名) 求和
     
    max(列名) 最大值
     
    min(列名) 最小值
     
    avg(列名) 平均值
     
    first(列名) 第一条记录 仅Access支持
    last(列名) 最后一条记录 仅Access支持
    count(列名) 统计记录数 注意和count(*)的区别
    MySQL:

    GROUP_CONCAT(expr)  

    这个方法不错 可以将 分组的字符串 以,连接起来

    SELECT x.No1ModelName,GROUP_CONCAT(No1ModelDate) from product x
    GROUP BY x.No1ModelName;
  • 相关阅读:
    基于Swoole的HTTP/HTTPS代理
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    RxJava2源码解析(二)
    C#中的委托和事件(续)
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/yigeyanse/p/6003756.html
Copyright © 2020-2023  润新知