MySQL基础-04常见函数(单行函数)
1 单行函数
1.1 字符函数
length()
select length( 'john' )
select length( '张三丰hahaha' )
show variables lie '%char%'
concat 将姓变大写名变小写,然后拼接
select concat( last_name, '_' , first_name) from employees;
select concat( upper( last_name) , lower( first_name) ) from employees;
substrr 、 substring
select substr( '李莫愁爱上了陆湛远' , 7 ) out_put;
select substr( '李莫愁爱上了陆湛远' , 1 , 3 ) out_put;
select concat( upper( sunstr( last_name, 1 , 1 ) ) , '_' , lower( sunstr( last_name, 2 ) ) ) out_put
from employees;
instr 返回字串第一次出现的索引,如果找不到返回0
select instr( '杨不殷六侠梅爱上了殷六侠' , '殷六侠' ) as out_put;
trim 去除字符串前后空格
select trim( ' 张翠山 ' )
select trim( 'a' from 'aaaaaaaa张aaaaa翠山aaaaaaaaa' ) as out_put;
lpad 用指定的字符实现左填充指定长度
select lpad( '殷素素' , 10 , '*' ) as out_put;
select lpad( '殷素素' , 2 , '*' ) as out_put;
rpad 用指定的字符实现右填充指定长度
select lpad( '殷素素' , 12 , 'ac' ) as out_put;
replace 替换
select replace ( '张无忌爱上了周芷若' , '周芷若' , '赵敏' )
1.2 数学函数
函数 用法 ABS(x) 返回x的绝对值 SIGN(X) 返回X的符号。正数返回1,负数返回-1,0返回0 PI() 返回圆周率的值 CEIL(x),CEILING(x) 返回大于或等于某个值的最小整数 FLOOR(x) 返回小于或等于某个值的最大整数 LEAST(e1,e2,e3…) 返回列表中的最小值 GREATEST(e1,e2,e3…) 返回列表中的最大值 MOD(x,y) 返回X除以Y后的余数 RAND() 返回0~1的随机值 RAND(x) 返回0~1的随机值,其中x的值用作种子值,相同的X值会产生相同的随机数 ROUND(x) 返回一个对x的值进行四舍五入后,最接近于X的整数 ROUND(x,y) 返回一个对x的值进行四舍五入后最接近X的值,并保留到小数点后面Y位 TRUNCATE(x,y) 返回数字x截断为y位小数的结果 SQRT(x) 返回x的平方根。当X的值为负数时,返回NULL
round 四舍五入
select round ( 1.65 )
select round ( 1.45 )
select round ( 1.567 , 2 ) ;
cell 向上取整,返回>=该参数的最小整数
select cell( 1.52 )
select cell( 1.002 )
select cell( 1.00 )
select cell( - 1.02 )
floor 向下取整 返回<=该参数的最小整数
select floor( 9.99 )
select floor( - 9.99 )
truncate 截断
select truncate ( 1.65 , 1 ) ;
mod 取余 mod(a,b) => a-a/b*b;
select mod ( 10 , 3 )
select 10 % 3 ;
1.3 日期函数
now 返回当前系统日期+时间
select now ( ) ;
curdata 返回当前系统日期
select curdate( ) ; ;
curtime 返回当前时间
select curtime( ) ;
可以获取指定的部分,年、月、日、时、分、秒
select year ( now ( ) ) 年
select year ( '1990-1-1' )
select month ( now ( ) ) 月;
select monthname( now ( ) ) 月;
str_to_date: 将日期格式的字符转换成指定格式的日期
select str_to_date( '9-13-1999' , '% m- % d- % Y)
date_format:将日期转换成字符
select date_format( '2018/6/6' , '%Y年%m月%n日' ;
1.4 其他函数
select version( ) ;
select database ;
select user ;
1.5 流程控制函数
if 函数
select if ( 10 > 5 , '大' , '小' )
case case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句; when 常量2 then 要显示的值2或语句; … else 要显示的值n或语句; end;
select salary 原始工资, department_id,
case department_id
when 30 then salary* 1.1
when 40 then salary* 1.2
when 50 then salary* 1.3
else salary
end as 新工资
from employees;
case 函数的使用二,类似于多重if case when 条件1 then 要显示的值或者语句; when 条件2 then 要显示的值或者语句; when 条件3 then 要显示的值或者语句; … else 要显示的值或者语句; end;
Select salary
case sqlary> 20000 then 'A'
case sqlary> 15000 then 'B'
case sqlary> 10000 then 'C'
else 'D'
end as 工资级别
from emp; oyees;