本文属于原创整理,转载请注明:http://www.pm-road.com/index.php/2014/07/23/21/

在使用mysql中的过程中,会遇到各种查询操作,包括什么跨表查询,进行分组求差,求和等等。

曾经我记得写过最长一个sql语句长达三屏,那一次泪崩我了。废话不多说,直接上命令:

 

SQL中的一些定义:

DDL:数据定义语言,包括create alter drop truncate 命令;

DML:数据操作语言,包括insert,update,delete命令;

DQL:数据查询语言,也就是select命令;

SQL中的方法:

count(*),计数方法,其中*号可以换成某一列的名字,该方法忽略空值null ,也就是说null 不在计算之内;

sum(列名),求和方法,该方法忽略空值null ,也就是说null 不在计算之内;

avg(列名),求平均值,该方法忽略空值null ,也就是说null 不在计算之内; 如果在计算过程中,会有空值,建议写成:avg(nvl(列名,0))意思就是说如果碰到该列为空,则赋值为0;

nvl(列名,值),如果该列为空,则取后面的值;

max(列名),求某一列的最大值,忽略空值;

min(列名),求某一列的最小值,忽略空值;

group by 列名 ,通过什么列分组,一般多用于计数,求和等;

group by 列名 having  ,group by 可以单独使用,也可以和having 组合使用,意思就是将group by 后的结果进行筛选,having 后面跟的条件必需是组函数(sum\avg\count等);

initcap, 将首字母转换成大写;

length(),取长度;

lpad(列名,长度,补齐字符),左补丁函数,就是将某一列如果不够长的话,左面补齐符号;

rpad(列名,长度,补齐字符),右补丁函数,和左补丁相反;

replace(原字符,新字符),字符替换函数;

subStr(),字符截取;

trim(列名),去除前后空格;

STR_TO_DATE(字符,日期格式),将字符转换成日期格式;

date_format(列名,字符格式),将日期转换成字符串;其中字符格式一般为:%Y-%m-%d %h:%i:%s,更多格式可在百度搜索一下;

is null /is not null ,在数据库中如果查询为空或者不为空用此,而不是 != null

union all ,两个结果的并集,不去重,不排序;

union ,两个结果的并集,去重,排序;

distinct ,将结果去重,只能跟在select 后面;

between ……and …… ,该函数为一个闭区间;

join ,将两个表连在一起,用于跨表查询 ;

join ……on …… 在使用join的过程中,on后面是判断条件;

以上是在mysql中常用的一些方法,还有很多方法没有写上,比如:lower()、upper()等,欢迎大家补充、提建议、拍砖……