1.字符串的函数
concat(s1,s2,…,sn)函数 : 把传入的参数连接成一个字符串;任何字符串与null进行连接的结果都将是null.
select concat('aaa','bbb','ccc'),concat('aaa',null);
insert(str,x,y,instr)函数 : 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr.
select insert('beijing2008you',12,3,'me');
lower(str)和upper(str)函数 : 把字符串转换成小写或大写.
select lower('BEIJING2008'),upper('beijing2008');
left(str,x)和right(str,x)函数 : 分别返回字符串最左边的x个字符和最右边的x个字符,如果第二个参数是null,那么将不返回任何字符串.
select left('beijing2008',7),left('bejing',null),right('bejing2008',4);
lpad(str,n,pad)和rpad(str,n,pad)函数 : 用字符串 pad 对 str最左边和最右边进行填充,直到长度为n个字符长度.
select lpad('2008',20,'beijing'),rpad('beijing',20,'2008');
trim((str)函数 : 去掉目标字符串的开头和结尾的空格.
select trim(' $ beijing2008 $ ');
ltrim(str)和rtrim(str)函数 : 去掉字符串str左侧和右侧空格.
select ltrim(' |beijing'),rtrim('beijing| ');
replace(str,a,b)函数 : 用字符串b替换字符串str中所有出现的字符串a.
select replace('beijing_2010','_2010','2008');
strcmp(s1,s2)函数 : 比较字符串s1 和 s2 的ASCII码值的大小.
select strcmp('a','b'),strcmp('b','b'),strcmp('b','c');
substring(str,x,y)函数 : 返回从字符串str中的第x位置起y个字符长度的字符串.
select substring('beijing2008',8,4),substring('beijing2008',1,7);
2.数值函数
abs(str)函数 : 返回x的绝对值.
select abs(-0.8),abs(0.8);
ceil(str)函数 : 返回大于x的最小的函数.
select ceil(-0.8),ceil(0.8);
floor(str)函数 : 返回小于x的最大整数,和ceil的用法刚好相反.
select floor(-0.8),floor(0.8);
mod(x,y)函数 : 返回x/y的模.模数和被模数任何一个为null,结果都为null.
select mod(15,10),mod(1,11),mod(null,10);
rand()函数 : 返回0~1的随机值.利用此函数可以取任意指定范围内的随机数,比如需要产生0 ~ 100 的任意随机整数.
select rand(),rand();
select ceil(100*rand()),ceil(100*rand());
round(x,y)函数 : 返回参数x的四舍五入的有y位小数的值.msyql8.0版本亲测没补零,郁闷…
select round(1.1),round(1.1,2),round(1,2);
SELECT ROUND(-6.66,1),ROUND(3.33,3),ROUND(88.66,-1),ROUND(88.46,-2);
truncate(x,y)函数 : 返回数字x截断为y为小数的结果.
select round(1.235,2),truncate(1.235,2);
3.日期和时间函数
4.流程函数
造数据
create table salary(
userid int,
salary decimal(9,2)
);
show tables;
insert into salary values(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);
select * from salary;
if(value,t,f)函数 : 这里认为月薪在2000元以上的职员属于高薪,用"high"表示,而2000元以下的职员属于低薪,用"low"表示.
select userid,salary,if(salary>2000,'high','low') as salary_level from salary;
ifnull(value1,value2)函数 : 如果value不为空,返回value1,否则返回value2; 这个函数一般用来替换null值
select userid,salary,ifnull(salary,0) from salary;