视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql研究之MySQL常用内置函数完全解析_MySQL
2020-11-09 19:44:11 责编:小采
文档

说明:

1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中

2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值。

3)在程序设计语言如C++中提供的函数,MySQL大部分也提供了,关于MySQL函数的完整信息,请参阅《MySQL参考手册》

一、字符串函数【比较常用,需要掌握】

1、 concat(s1,s2,…,sn) #把传入的参数连接成一个字符串

selectconcat(‘abc’,’def’);

selectconcat(name,’ age is ‘,age) from users;

2、insert(str,m,n,inser_str) #将str的从m位置开始的n个字符替换为inser_str

selectinsert(‘abcdef’,2,3,’123456′);

selectinsert(name,3,2,’HAHA’) from users;

selectinsert(name,2,2,’00′) from users;

3、lower(str)/upper(str) #将字符串str转换成小写/大写

selectlower(‘HELLO’),upper(‘hello’);

selectlower(‘HELLO’) as ‘HELLO’,upper(‘hello’)as ‘HELLO’;

select* from users where upper(name) = ‘AAA’;

4、left(str,n)/right(str,n) #分别返回str最左边/最右边的n个字符,如果n<=> NULL 则任何东西不返回

selectleft(’123′,3),right(’123456′,3),left(’123′,NULL);

5、lpad(str,n,pad)/rpad(str,n,pad) #用字符串pad对str的最左边/最右边进行填充,知道满足str含有n个字符为止

selectname,lpad(name,10,’#’),rpad(name,10,’@’) from users;

6、trim(str)/ltrim(str)/rtrim(str) #去除字符串str左右空格/左空格/右空格

selectconcat(‘#’,trim(” abc “),’#’),concat(‘#’,ltrim(‘ abc ‘),’#’),concat(‘#’,rtrim(‘ abc ‘),’#’);

7、replace(str,sear_str,sub_str) #将字符串str中所有出现的sear_str字符串替换为sub_str

select replace(‘abcdefgabcd’,’cd’,’XXX’) ;

8、strcmp(str1,str2) #以ASCII码比较字符串str1,str2,返回-1(str1< str2)/0(str1= str2)/1(str1 > str2)

selectstrcmp(‘aa’,’bb’),strcmp(‘aa’,’aa’),strcmp(‘bb’,’aa’);

9、substring(str,n,m) #返回字符串str中从n起,m个字符长度的字符串

selectsubstring(‘abcdef’,2,3);

selectname,substring(name,1,2) as subname from users;

二、数值函数

1、abs(x) #返回x的绝对值

selectabs(10),abs(-10);

selectabs(age) from users;

2、ceil(x) #返回大于x的最小整数

3、floor(x) #返回小于x的最大整数

selectceil(2.1),ceil(2.5),ceil(2.9),floor(2.1),floor(2.5),floor(2.9)

4、mod(x,y) #返回x/y的模,与x%y作用相同

selectmod(null,11);

游戏编程网www.cgzhw.com有详细的说明,这里就不再重复了。

三、日期函数

1、curdate() #返回当前日期

2、curtime() #返回当前时间

selectcurdate(),curtime();

3、now() #返回当前日期+时间

selectnow();

4、unix_timestamp(now())#返回unix当前时间的时间戳

selectunix_timestamp(now()); #从计算机元年(1971-1-100:00:00)到现在的秒数

5、from_unixtime() #将时间戳(整数)转换为“日期+时间(xx-xx-xxxx:xx:xx)”的形式

selectfrom_unixtime(1392853616);

6、week(now()) #返回当前时间是第几周

7、year(now()) #返回当前是XX年

8、hour(now())/hour(curtime()) #返回当前时间的小时数

9、minute(curtime()) #返回当期的分钟数

selectweek(now()),year(now()),hour(now());

selectweek(from_unixtime(1392853616)); #返回unix时间戳中的周期数

10、monthname(now())/monthname(curdate()) #返回当前月的英文名

11、date_format(now(),”%Y-%M-%D%H:%I%S”) #将当期时间格式化

selectdate_format(now(),”%Y-%m-%d %H:%i%s”);

selectdate_format(now(),”%y%m%d %H:%i%s”);

四、流程控制函数

1、if(value,true,false) #如果value值为真,则返回true,否则,返回false

selectif (salary > 3000,’Hight’,’Low’) from salary;

selectid,salary, if (salary <=> NULL,’NULL’,’NOT NULL’) from salary;

2、ifnull(value1,value2)#如果value1不为空,则返回value1,不然返回value2

#可以用来进行空值替换

selectifnull(salary,0.00) from salary;

3、casewhen [value] then … else …end #如果value值为真,执行then之后的语句,不然执行eles后的语句,不要忘记end!

selectcase when salary <= 3000 then “Low” else “Hight”end from salary;

五、其他函数

1、database() #当前数据库

2、version() #当前数据库版本

3、user() #当前登录用户

selectdatabase();

4、inet_aton(ip) #ip地址的网络字节顺序

selectinet_aton(’192.168.139.1′);

5、inet_ntoa #返回数字所代表的ip

selectinet_ntoa(3232271105);

6、password(str) #返回加密的str字符串

selectpassword(“123456″); #返回一个41位长的加密字符串,只是用于给MySQL系统用户进行加密

7、md5() #在应用程序中进行数据加密,比如在C++程序中

selectmd5(“123456”);

下载本文
显示全文
专题