MySql常用函数全部汇总

1.字符串函数
#CHAR_LENGTH(str)字符串函数

select CHAR_LENGTH(name) from employee02  where name = '王小明';

#CONCAT(s1,s2,…)返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL

select CONCAT("-","name","data","data01","data02")  as aaa;

#CONCAT_WS(x,s1,s2,…)返回多个字符串拼接之后的字符串,每个字符串之间有一个x

select CONCAT_WS("-","name","data","data01","data02")  as aaa;
SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!")AS ConcatenatedString;

#LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str)前两者将str中的字母全部转换成小写,后两者将字符串中的字母全部转换成大写

#LEFT(s,n)、RIGHT(s,n)前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符

select 
left(name,1),
left(name,2),
left(name,3) 全名
from employee02  where name = '王小明';

select 
right(name,1),
right(name,2),
right(name,3) 全名
from employee02  where name = '王小明';

#LPAD(s1,len,s2)、RPAD(s1,len,s2)前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

select 
LPAD(id,5,'0')  id
from employee02  where name = '王小明';

select 
RPAD(id,5,'0')  id
from employee02  where name = '王小明';

#REPEAT(s,n)返回一个由重复字符串s组成的字符串,字符串s的数目等于n

select 
REPEAT(1,6)  id
from employee02  where name = '王小明';

select 
REPLACE(name,'小','明')
from employee02  where name = '王小明';

#SUBSTRING(s,n,len)、MID(s,n,len)两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串

select 
SUBSTRING(name,1,2)  name 
from employee02  where name = '王小明';

select 
MID(name,1,2)  name 
from employee02  where name = '王小明';

#LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)

select 
LOCATE('王',name)  name 
from employee02  where name = '王小明';

select 
POSITION('小' in name)  name 
from employee02  where name = '王小明';

select 
INSTR(name,'小')  name 
from employee02  where name = '王小明';

2.日期和时间函数

select 
date
from employee02  where name = '王小明';

#CURDATE()、CURRENT_DATE

select 
CURDATE()
from employee02  where name = '王小明';

select 
CURRENT_DATE
from employee02  where name = '王小明';

#CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()

select 
CURRENT_TIMESTAMP()
from employee02  where name = '王小明';

select 
LOCALTIME()
from employee02  where name = '王小明';

select 
NOW()
from employee02  where name = '王小明';

select 
SYSDATE()
from employee02  where name = '王小明';

#UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)

select 
UNIX_TIMESTAMP()
from employee02  where name = '王小明';

select 
UNIX_TIMESTAMP(date)
from employee02  where name = '王小明';

#MONTH(date)和MONTHNAME(date)

select 
MONTH(date)-1   当前月份,
MONTHNAME(date)  下个月
from employee02  where name = '王小明';

#DAYOFYEAR(d)、DAYOFMONTH(d)前者返回d是一年中的第几天,后者返回d是一月中的第几天

select 
DAYOFYEAR(2)
from employee02 where name = '王小明';

3.条件判断函数

SELECT IF(1<2,2,3);
SELECT IF(1>2,2,3);

select 
name,
if(name = '王小明','yes','no')  判断结果
from employee02 where name = '王小明';


select 
name,
if(name = '王二明','yes','no')  判断结果
from employee02 where name = '王小明';

select 
name,
ifNull(name,'无')  结果
from employee02 where name = '王小明';

select 
case name when '王小明' then '王小明' else '其他' end   结果
from employee02 where name = '王小明';

select 
case name when '王二明' then '王小明' else '其他' end   结果
from employee02 where name = '王小明';

4.系统信息函数

select VERSION();

select CONNECTION_ID();

show processlist;

#USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()查看当前被MySQL服务器验证的用户名和主机的组合,一般这几个函数的返回值是相同的

select USER();
select CURRENT_USER();
select SYSTEM_USER();
select SESSION_USER();

#CHARSET(str)查看字符串str使用的字符集

select 
CHARSET(name)
from employee02 where name = '王小明';

5.加密函数
#PASSWORD(str)从原明文密码str计算并返回加密后的字符串密码,注意这个函数的加密是单向的(不可逆),因此不应将它应用在个人的应用程序中而应该只在MySQL服务器的鉴定系统中使用

select 
PASSWORD(name)
from employee02 where name = '王小明';

#为字符串算出一个MD5 128比特校验和,改值以32位十六进制数字的二进制字符串形式返回

select 
MD5(name)
from employee02 where name = '王小明';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章