mysql内置函数
1.字符串函数
1.1.查看字符的ascii码值ascii(str),str是空串时返回0
select ascii('a');
1.2.查看ascii码值对应的字符char(int)
select char(97);
1.3.拼接字符串 concat(str1,str2...)
select concat(100,'abc');
1.4.字符个数 length(str)
select lengh('abc');
1.5.截取字符串
left(str,len)返回字符串str的左端len个字符
right(str,len)返回字符串str的右端len个字符
substring(str,pos,len)返回字符串str的位置pos起len个字符
select left('abc123',2);
select right('abc123',2);
select substring('abc123',2,3);
1.6.去除空格
ltrim(str)返回删除了左空格的字符串str
rtrim(str)返回删除了右空格的字符串str
trim([方向 remstr from str)返回从某侧删除remstr后的字符串str,方向词包括both、leading、trailing,表示两侧、左、右。
select ltrim(' a ');
select rtrim(' a ');
select trim(' a ');
select trim(both "x" from "xxbarxx");
select trim(leading "x" from "xxbarxx");
select trim(trailing "x" from "xxbarxx");
1.7.返回由n个空格字符组成的一个字符串space(n)
select space(10);
1.8.替换字符串replace(str,from_str,to_str)
select replace('abc123','123','def');
1.9.大小写转换
lower(str)
upper(str)
2.数学函数
2.1.求绝对值 abs(n)
2.2.求余数 mod(m, n) | %
2.3.向下取整 floor(n)
2.4.向上取整 ceiling(n)
2.5.四舍五入 round(n,d) d表示小数位数
2.6.求幂 pow(x, y)
2.7.圆周率 PI()
2.8. 0~1.0 的随机浮点数 rand()
3.日期时间函数
3.1.获取当前日期:select current_data();
3.2.获取当前时间:select current_time();
3.3.获取当前日期时间:select now();
3.4.获取子值:year(date), month(date), day(date), hour(time), minute(time), second(time)
3.5.日期计算:select date +|- interval 1 day|month|year
3.6.日期格式化:select date_format(date,format)
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回天值
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
4.类型转换函数
select convert(value,type)
select cast(value as type)
二进制 binary
字符型 char,可指定字符个数如char(10)
日期 date
时间 time
日期时间型 datetime
浮点数 decimal
整数 signed
无符号整数 unsigned
5.流程控制函数
5.1. case语法1:等值判断
说明:当值等于某个比较值的时候,对应的结果会被返回;如果所有的比较值都不相等则返回else的结果;如果没有else并且所有比较值都不相等则返回null
select case 1 when 1 then 'one' when 2 then 'two' else 'zero' end as result;
5.2. case语法2:非等值判断,可以进行 > 、<、!=等判断
说明:当某个条件返回true时,对应的结果被返回;如果所有的条件都不返回true则返回else的结果;如果没有else并且所有条件都不返回true则返回null
select case when 1 > 2 then 'part1' when 3 > 2 then 'part2' else 'part3' end as result;
5.3. if语句:如果表达式的结果为true,则返回结果1,否则返回结果2
select if(1 > 2,2,3) as result;
5.4. ifnull语句:如果表达式1不为null,则返回表达式1的结果,否则返回表达式2的结果
select ifnull(1,0) as result;
5.5. nullif语句:如果表达式1等于表达式2,则返回null,否则返回表达式1的结果
select nullif(1,0) as result;