1、常见函数
说明:sql中的函数分为单行函数和分组函数
调用语法:select 函数名(实参列表);
1》字符函数
concat(str1,str2,…):拼接字符
substr(str,pos):截取从pos开始的所有字符, 起始索引从1开始
substr(str,pos,len):截取len个从pos开始的字符,起始索引从1开始
length(str):获取字节个数
char_length(str):获取字符个数
upper(str):变大写
lower(str):变小写
trim(【substr from】str):去前后指定字符,默认是去空格
left(str,len):从左边截取指定len个数的 字符
right(str,len):从右边截取指定len个数的 字符
lpad(str,substr,len):左填充
rpad(str,substr,len):右填充
strcmp(str1,str2):比较两个字符的大小
instr(str,substr):获取substr在str中第一次出现的索引
2》数学函数
ceil(x):向上取整
floor(x):向下取整
round(x,d):四舍五入
mod(x,y):取模/取余
truncate(x,d):截断,保留小数点后d位
abs(x):求绝对值
3》日期函数
now():获取当前日期——时间
curtime():只有时间
curdate():只有日期
date_format(date,格式):格式日期为字符
str_to_date(str,格式):将字符转换成日期
datediff(date1,date2):获取两个日期之间的天数差
year(date)
month(date)
…
4》流程控制函数
①if(条件,表达式1,表达式2):如果条件成立,返回表达式1,否则返回表达式2
②case 表达式
when 值1 then 结果1
when 值2 then 结果2
…
else 结果n
end
③
case
when 条件1 then 结果1
when 条件2 then 结果2
…
else 结果n
end
2、分组函数
sum求和
计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
avg平均
计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
max最大
计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min最小
计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
count个数
统计指定列不为NULL的记录行数;
特点:
1》实参的字段的类型,sum和avg只支持数值型,其他三个可以支持任意类型
2》这五个函数都忽略null值
3》count可以支持以下参数
count(字段):查询该字段非空值 的个数
count(*) :查询结果集的行数
count(1):查询结果集的行数
4》分组函数可以和distinct搭配使用,实现去重的统计
select count(distinct 字段) from 表;