数据排序

    排序采用order by 子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by 默认采用升序(asc 升序,desc 降序),如果存在where子句,那么order by 必须放到where语句的后面。

数据处理函数(单行处理函数)

Lower        转换小写

upper         转换大写

substr         取子串(substr(被截取的字符串,起始下标(起始下标从1开始),截取长度))

length         取长度

trim             去前后空格

str_to_date  将字符串转换成日期

%Y              代表四位的年份

%m              代表月

%d               代表日

%H               代表24小时制

%i                代表分钟

%S或%s      代表秒

date_format 格式化日期

format           设置千分位

round            四舍五入(0-1)

rand()            生成随机数

Ifnull             可以将null转换成一个具体值

多行处理函数----自动忽略空值

sum              求和

avg               取平均值

max              取最大值

min               取最小值

count            取得记录数

去除重复记录:distinct

作用:将查询结果中某一个字段的重复记录去除掉

用法:distict 字段名或distinct 字段名1 字段名2

           distinct 字段名1 :去除与字段名1相同的记录

           distinct 字段名1,字段名2:去除与字段名1,字段名2同时相同的记录

分组查询:group by

作用:通过哪个或者哪些字段进行分组

用法:group by 字段名

数据过滤条件:having

使用:having必须和group by一起使用,having是对分组之后的数据仍然不满意的情况下才使用。

select语句总结

一个完整的SQL语句如下:

select

          xxx

from

          xxx

where

          xxx

group by

          xxx

having

          xxx

order by

          xxxx

以上关键字的顺序不能变,严格遵守

以上语句的执行顺序:

  1. from 将硬盘上的表文件加载到内存
  2. where 将符合条件的数据进行摘取出来,生成一张新的临时表
  3. group by 根据列中的数据种类,将当前的临时表划分成若干个新的临时表
  4. having 可以过滤掉group by生成的不符合条件的临时表
  5. select 对当前的临时表进行整列读取
  6. order by       对select 生成的临时表进行重新排序,生成新的临时表
  7. limit 对最终生成的临时表的数据行进行截取