Mysql的常用函数操作一

一、数字函数

ABS(x):返回 x 的绝对值
-> select abs(-1) -- 返回1   

ACOS(x):求 x 的反余弦值(参数是弧度)	
-> select acos(0.25) -- 返回1.318116071652818

ASIN(x) 求反正弦值(参数是弧度)	
-> select asin(0.25) -- 返回0.25268025514207865

ATAN(x) 求反正切值(参数是弧度)
-> select atan(0.25) -- 返回0.24497866312686414

AVG(expression)	 求平均数
-> SELECT AVG(Price) AS AveragePrice FROM Products;

CEILING(X)/CEIL(X)返回>=X的最小整数
-> select ceiling(2.3); 返回3
-> select ceil(1.3);  返回2

FLOOR(X) 返回<=X值的最大整数。
-> select floor(1.2); 返回1
-> select floor(-3.2);返回-4

RAND([N]):获取0到1之间的随机小数,比如当想获取7~12之间的随机整数是可以使用。一般用于生成测试数据
-> SELECT FLOOR(7 + (RAND() * 5));
-> select floor(10+(rand()*10));##取10-20的随机整数
 
ROUND(X), ROUND(X,D):  四舍五入为D位个小数,当D参数不存在是,则默认为0。D 可以为负数,从而导致D该值的小数点左边的数字,X变为零。
-> select round(5.6);返回6;
-> select round(5.4);返回5;
-> select round(5.4,2);返回5.40;

TRUNCATE(X,D)  数字X只保留D位的小数,其余均舍弃。D可以为负数,从而导致D该值的小数点左边的数字X变为零。
->select truncate(5.454,1); 返回5.4
->select truncate(5.454,2);返回5.45

二、字符串函数:

ASCII(s):返回字符串str的第一个字符的ascii值(str是空串时返回0) 	
-> select ascii('s'); 
-> 115

bin(n)  
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2)) 
-> select bin(12); 
-> 1100

concat(str1,str2,...)  
把参数连成一个长字符串并返回(任何参数是null时返回null) 
-> select concat('my','sql');
-> mysql

length(str)  
返回字符串str的长度(对于多字节字符char_length仅计算一次)
-> select length('python');
-> 6

locate(substr,str)  
position(substr in str)  
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0) 
-> select locate('tt','fsattfsdfs');
-> 4
-> select position('tt' in 'fsattfsdfs');
-> 4

locate(substr,str,pos) 
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0) 
-> select locate('tt','ffttsfsfttfss',5);
-> 9

lpad(str,len,padstr)  
用字符串padstr填补str左端直到字串长度为len并返回 
->  select lpad(123,5,'??');
-> ??123
 
rpad(str,len,padstr)  
用字符串padstr填补str右端直到字串长度为len并返回 
-> select rpad(123,5,'??');
-> 123??

left(str,len)  
返回字符串str的左端len个字符 
-> select left('testfsdjdsfs',4);
-> test

right(str,len)  
返回字符串str的右端len个字符  
-> select right('foobarbar', 4); 

 -> 'rbar'

substring(str,pos,len)  
substring(str from pos for len)  
mid(str,pos,len)  
返回字符串str的位置pos起len个字符
->select substring('dsttest',1,3);
-> dst
-> select substring('fdsdsfsdf' from 3 for 2);
-> sd
-> select mid('fdsfsdfsd',3,5);
-> sfsdf

substring(str,pos)  
substring(str from pos)  
返回字符串str的位置pos起的一个子串 

-> select substring('fsdttest',4);
-> ttest
-> select substring('fsdttest' from 2);
-> sdttest

ltrim(str)  
返回删除了左空格的字符串str 
rtrim(str)  
返回删除了右空格的字符串str
-> select ltrim('     test'); 
-> test
-> select rtrim('test   ');
-> test

trim([[both | leading | trailing] [remstr] from] str)  
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格) 
-> select trim('  bar   '); 
-> bar

space(n)  
返回由n个空格字符组成的一个字符串
-> select space(7)
-> '       ' 

replace(str,from_str,to_str)  
用字符串to_str替换字符串str中的子串from_str并返回
->select replace('www.baidu.com','baidu','fing');
-> www.fing.com

repeat(str,count)  
返回由count个字符串str连成的一个字符串(任何参数为null时
返回null,count<=0时返回一个空字符串) 
-> select repeat('test',4);
->testtesttesttest

reverse(str)  
颠倒字符串str的字符顺序并返回 
-> select reverse('python');
-> nohtyp

insert(str,pos,len,newstr)  
把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回 
->  select insert('www.baidu.com',5,2,'fing');
-> www.fingidu.com

lcase(str) 
lower(str)  
返回小写的字符串str 
-> select lcase('WWWW');
-> wwww

ucase(str)  
upper(str)  
返回大写的字符串str 
-> select ucase('wwww'); 
-> 'WWWW'
原文地址:https://www.cnblogs.com/qixc/p/12968549.html