常见函数:
调用:select 函数名( 实参列表)【from 表】;
一、字符函数
length:获取参数值的字节个数
例:select length('张三丰hahaha') >> 一个中文字母占三个字节,一个英文字母占一个字节。
concat:拼接字符串
例:select concat(last_name, '_', first_name) 姓名 from employees;
upper、lower:字母变为大写、小写
例:select upper('join'); >> JOIN
substr、substring:截取字符串
注意:索引从1开始
#截取从指定索引处后面所有字符
select substr('你好吗', 2) out_put; 》》好吗
#截取从指定索引处指定字符长度的字符
select substr('你好吗', 1, 2) out_put; 》》你好
instr:返回子串第一次出现的索引,如果找不到返回0
select instr('你好吗最近顺遂吗', '吗') as output; 》》3
例:查询学员的邮箱的用户名(即邮箱中@前面的字符)
select substr(email, 1, instr(email, '@')-1) 用户名
from stuinfo;
trim:去除字符串前后空格或指定字符串
select length(trim(' 你好 ')) as output; 》》6
select trim('aa' from 'aaaaaaa你好aaaaaa') as output; 》》a你好
lpad:用指定的字符实现左填充指定长度
select lpad('你好', 1, '*') as out_put; 》》你
select lpad('你好', 4, '*') as out_put; 》》**你好
rpad:用指定的字符实现右填充指定长度
select rpad('你好', 4, '*') as out_put; 》》你好**
replace:替换
select replace('你你你好', '你', '我') as out_put; 》》我我我好
二、数学函数
round 四舍五入
select round(-1.55); 》》-2
select round(1.567, 2); 》》1.57 (第二个参数为保留几位小数)
ceil 向上取整。 返回>=该参数的最小整数
select ceil(1.002); 》》2
select ceil(1.00); 》》1
select ceil(-1.02); 》》-1
floor 向下取整。 返回<=该参数的最大整数
select floor(-9.99); 》》-10
truncate 截断
select truncate(1.6999, 1); 》》1.6 (从小数点后一位截断)
mod 取余 (被除数为负结果为负,被除数为正结果为正)
select mod(10, 3); 》》1
select mod(-10,- 3); 》》-1
select mod(10,- 3); 》》1
rand 获取随机数,返回0-1之间的小数
三、日期函数
now 返回当前系统日期+时间
select now();
curdate 返回当前系统日期,不包含时间
select curdate();
可以获取指定的部分,年、月、日、小时、分钟、秒
select year(now()) 年;
SELECT MONTH(NOW()); 》7
str_to_date: 将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('9-13-1999','%m-%d-%y') as result; >>2019-09-13
date_format 将日期转换成字符
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put; >> 22年03月31日
datadiff 返回两个日期相差的天数
四、流程控制函数
if函数: if else的效果
if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2
select if(10<5, '大', '小') 》》小
case:
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
…
else 要显示的值n或语句n;
end
五、分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:
Sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数(一般使用count(*)用作统计行数)
例:select sum(salary) from employees;
特点:
1、sum、avg一般用于处理数值型;
max、min、count可以处理任何类型
2、以上分组函数均忽略null值;
3、可以和distinct搭配实现去重的运算; select max(distinct 字段)
4、和分组函数一同查询的字段要求是group by后的字段