2016/05/10

聚合函数:

    sount:获得行数目 语法 celect count(*) from 表名

    sum:获得单列的和值 语法 celect sum(列名) from 表名

    avg:平均值 语法 celect  avg(列名) from 表名

    max:最大值  语法 celect  max(列名) from 表名

    min:最小值 语法 celect min(列名) from 表名

sum只有all 和 distinct 方法没有*规范

max/min 没有all   distinct 和 * 规范

数据分组:

   select  列A 聚合函数(聚合函数规范) from 表名 where 过滤条件 group by 列A  / 使用group by 以列A 进行分组

   为什么要分组:对数组统计与聚合函数相结合

HAVING(having) :

    要与 group by 一起使用没有单独存在的意义

    select 列A ,聚合函数(聚合函数规范) from 表名 group by 列A having 条件 /  分组后再进行过滤

    where 运行在分组前   having 运行在分组后  分组后面不能跟 where 只能跟 having

技数规范                   丨                          含义

     *                        丨                     计数选择的行,包括null

  ALL(all)               丨            指定列非空值行,如果不带ALL和DISTINCT 这是默认的操作

DINTINCT(distinct)    丨        计算定列的所有唯一非空值行。并且去掉重复的值

 SQL语句执行顺序:

  ①select    ②from   ③where   ④group by   ⑤order by    ⑥ having

在mysql中关键字 字段 列名不敏感 但是值应该敏感   数据库中 lower 把字符转为小写   upper 转换为大写

子查询:

     select   columnA,(子查询)  as   columnB  from 表名

     什么是子查询:嵌套在主查询语句中的查询

sql语句 select 每次抓取一条记录,如果有相似的那么就继续抓取下一条 最后由工具显示出来

where中嵌套子查询:

   select columnA  from 表名 where columnB =(子查询)

ALL运算和ANY

   ALL:需要满足全部

   ANL:满足任意条件即可

EXISTS(exists):当子查询能查询东西才执行  不然这条语句都不会执行

相关子查询:(关联子查询    需要的时间会更长)

    ① 执行依赖于外部查询数据

    ② 外部查询返回一行,子查询就执行一次

非相关子查询:

    ① 独立于外部查询的子查询

    ② 子查询总共执行一次,执行后把值传递给外部查询

UNION(union) 组合查询(也叫联合查询) UNION ALL 会保存相同的行

   select  列A,列B from 表名

   UNION

   select 列C,列D from 表名

posted @ 2016-05-10 19:46  丨她心如海般难测  阅读(150)  评论(0编辑  收藏  举报