- 统计函数:
count(统计):
eg.select count(列名) from 表名 where ...;
如果count的参数是*,代表的是统计符合条件的个数
如果count的参数是列,需要先过滤该列中NULL的数据
sum(求和):
eg.select sum(列名) from 表名 where ...;
avg(均值)、max(最大值)、min(最小值)用法跟sum是一样的 - 分组:
group by:用于将列的相同的值合并为一组,然后对每一组被合并的数据进行统计(这个是必须的)
select max(列名) from 表名 group by 列名;
group by
可以跟多个列,依次进行合并,然后进行统计
如果对分组的列需要进行过滤,可以再跟having
进行过滤
where
是对原始数据的过滤,having
是对分组处理后的过滤 - 常用的字符串相关的函数:
charset(返回字符串集):
select charset(列名) from 表名;
concat(合并字符串):
select concat(列名,字符串/列名) from 表名;
可以多列拼接,也可以跟固定的字符串拼接,也可以复合拼接
instr(返回子字符串的位置,没有返回0):
select instr(列名,字符串) from 表名;
ucase(转换为大写)\lcase(转换为小写):
select ucase(列名) from 表名;
left\right(从左边\右边起获取n个字符):
select left(列名,n) from 表名;
length(获取字符串长度):
select length(列名) from 表名;
replace(替换):
select replace(列名,旧值,新值) from 表名;
strcmp(比较字符串大小):
select strcmp(列名,字符串\列名) from 表名;
substring(从n1位置获取n2个数的子字符串):
select substring(列名,n1,n2) from 表名;
ltrim\rtrim(去除前后端的空格):
select ltrim(列名) from 表名;
- 数学函数:
abs(绝对值):
bin(十进制转二进制):
ceiling(向上取整,返回比指定数值大的最小整数):
floor(向下取整,返回比指定数值小的最大整数)
select ceiling(列名) from 表名;
conv(n1进制转换为n2进制)
select conv(列名,n1,n2) from 表名;
format(保留小数n位数):
select format(列名,n) from 表名;
hex(转十六进制):
least(最小值):
mod(求余):
rand(返回随机数,返回[0,1]):
如果rand有参数,执行多次所产生的随机数是一样的 - 日期函数:
current_data(当前日期):
current_time(当前时间):
current_timestamp(当前时间戳):
date(返回日期部分):
date_add(增加日期或者时间):
select date_add(列名,date) from 表名;
date_sub(减去日期):
datediff(两个日期差,返回单位是天):
from_unixtime(返回按照指定格式的日期,参数一般是10位数):
select from_unixtime(num,'%Y年%m月%d');
unix_timestamp(返回从1970-01-01 00:00:00开始的秒数,若无参数,默认此时):
select unix_timestamp('日期');
year|month|day|date(返回字符串中相应的日期部分): - 加密和系统函数:
user(查询用户):
database(查询数据库名称):
MD5(算出MD5的32位字符串,常用于密码加密):
password(另一种加密方式) - 流程控制函数:
if( 类似三目运算,比较语句为true,返回值1,反之返回值2):
select if(比较语句,值1,值2) as 新列名 from 表名;
ifnull(非空判断,值1为null,则返回值2,反之返回值1):
select if(值1,值2) as 新列名 from 表名;
case where … then … else … end(条件判断,语句为true,返回值1,反之返回值2,可以带多个where…then语句)
select case where 语句 then 值1 else 值2 end from 表名;
SQL的常用函数
最新推荐文章于 2024-07-23 02:40:33 发布