SQl语句之order by
一、ORDER BY
含义:order by 排序字段,
order by默认采用升序(asc),
如果存在 where 子句,那么 order by 必须放到 where 询句后面。
select ename,job,sal
from emp
where job = ‘MANAGER’order by sal;
select ename,job,ename
from emp
order by job desc,sal desc;
先根据job排序,在排sal
二、单行处理函数
Lower 转换小写
Upper 转换大写
substr 取子串(substr(字段名,起始下标,截取的长度))
length 取长度
trim 去空格
str_to_date 将字符串转换成日期
date_format 格式化日期
format 设置千分位
round (数字,保留小数位数)凼数:四舍五入
rand() 生成随机数
Ifnull 可以将null转换成一个具体值(字段名,替换0)
select ename,ifnull(comm,0) from emp;
注意:数据处理函数是该数据本身特有的,有些函数可能在其它数据库不起作用;
三、分组函数(sum,min,max,avg,count)
分组函数自动忽略空值,不需要手劢增加where条件排除空值;
分组凼数不能直接使用在where关键字后面
distinct 去除重复值
distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段联合去重
四、where和having 区 别 .
where 和 having 都是 为 了 完 成 数 据 的 过 滤 , 它 们 后 面 都 是 添 加 条 件 ,
where 是 在 group by 之前 完 成 过 滤 ;
having 是 在 group by 之后 完 成 过 滤 ;
五、执行顺序
from : 将硬盘上的表文件加载到内存
where: 将符合条件的数据行摘取出来。生成一张新的临时表
group by :根据列中的数据种类,将当前临时表划分成若干个新的临时表
having : 可以过滤掉group by生成的不符合条件的临时表
select : 对当前临时表迚行整列读取
order by : 对select生成的临时表,迚行重新排序,生成新的临时表
limit : 对最终生成的临时表的数据行,迚行截取。
————————————————
版权声明:本文为CSDN博主「前进中的工程师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SYSZ520/article/details/116235694