设为首页 收藏本站
查看: 652|回复: 0

[经验分享] MySQL 常用函数

[复制链接]

尚未签到

发表于 2018-10-7 13:20:00 | 显示全部楼层 |阅读模式
1.字符串类函数
  (1)CONCAT(s1,s2,s3,.....) 连接字符串
  例如:SELECT CONCAT('1','2') FROM DUAL;
  输出:12
  (2)LOWER(s) 将字符串全部变成小写
  例如:SELECT LOWER('ABC') FROM DUAL;
  输出:abc
  (3)UPPER(s) 将字符串全部变成大写
  例如:SELECT UPPER('abc') FROM DUAL;
  输出:ABC
  (4)LTRIM(s) 去除字符串左侧的空格
  例如:select LTRIM('           abc') from dual;
  输出:abc
  (5)RTRIM(s) 去除字符串右侧的空格
  例如:select LTRIM('abc ') from dual;
  输出:abc
  (6)TRIM(s) 去除字符串左右两侧的空格
  例如:select LTRIM( 'abc ') from dual;
  输出:abc
  (7)LPAD(s,len,pad) 用字符串pad来对s左侧进行填充,直至长度达到len
  例如:SELECT LPAD('1',5,'0') FROM DUAL;
  输出:00001
  (8)RPAD(s,len,pad) 用字符串pad来对s右侧进行填充,直至长度达到len
  例如:SELECT RPAD('1',5,'0') FROM DUAL;
  输出:10000
  (9)REPEAT(s,x) 将s重复x后返回
  例如:select REPEAT('a',5) from dual;
  输出:aaaaa
  (10)REPLACE(s,form,target) 将字符串中包含form的字符替换成target
  例如:SELECT REPLACE('abc','a','A') FROM DUAL;
  输出:Abc
  (11)STRCMP(s1,s2) 比较s1与s2,如果相同返回0,s2大于s1返回1,s2小于s1返回-1
  例如:SELECT STRCMP('a','b'),STRCMP('a','a'),STRCMP('b','a') FROM DUAL;
  输出:-1       0       1
  (12)LEFT(s,x) 返回字符串左侧x个字符
  例如:SELECT LEFT('abc',2) FROM DUAL;
  输出:ab
  (13)RIGHT(s,x) 返回字符串右侧x个字符
  例如:SELECT RIGHT('abc',2) FROM DUAL;
  输出:bc
  (14)MID(s,x,y) 返回字符串x位置开始y个字符
  例如:SELECT MID('abcd',3,2) FROM DUAL;
  输出:cd
  (15)SUBSTRING(s,x,y) 返回字符串x位子开始y个字符,与MID基本一样
  例如:SELECT SUBSTRING('abcd',3,2) FROM DUAL;
  输出:cd
  (16)INSERT(s,x,y,form) 将字符串x位置开始y个字符替换成form字符
  例如:SELECT INSERT('abcd',3,2,'FF') FROM DUAL;
  输出:abFF
  (17)LENGTH(s) 返回s的长度
  例如:SELECT LENGTH('123') FROM DUAL;
  输出:3
  (18)REVERSE(s) 返回s颠倒顺序
  例如:SELECT REVERSE('abc') FROM DUAL;
  输出:cba
2.数字类函数
  (1)CEIL(n) 返回大于n最大的整数
  例如:SELECT CEIL(100.1) FROM DUAL;
  输出:101
  (2)FLOOR(n) 返回小于n最大的整数
  例如:SELECT CEIL(100.1) FROM DUAL;
  输出:100
  (3)RAND() 返回0到1的随机数
  例如:SELECT RAND() FROM DUAL;
  输出:0.13824381133377908
  (4)ROUND(n,y) 将n四舍五入保留y位小数
  例如:SELECT ROUND(10.127,2) FROM DUAL;
  输出:10.13
  (5)TRUNCATE(n,y) 将n保留y位小数
  例如:SELECT TRUNCATE(10.1277777,2) FROM DUAL;
  输出:10.12
3.日期类函数
  (1)NOW() 返回当前日期时间
  例如:SELECT NOW() FROM DUAL;
  输出:2017-06-06 20:44:58
  (2)CURDATE() 返回当前日期
  例如:SELECT CURDATE() FROM DUAL;
  输出:2017-06-06
  (3)CURTIME() 返回当前时间
  例如:select CURTIME() from dual;
  输出:20:46:15
  (4)WEEK(date) 返回日期为一年中的周
  例如:SELECT WEEK('2017-06-06') FROM DUAL;
  输出:23
  (5)YEAR(date) 返回日期中的年
  例如:SELECT YEAR('2017-06-06') FROM DUAL;
  输出:2017
  (6)DATE_FORMAT(s,pattern) 格式化日期
  例如:SELECT DATE_FORMAT(NOW(),'%Y%m%d') FROM DUAL;
  输出:20170606
  格式化参数:
  %y  表示两位数字年份。例如:(2017返回17)
  %Y 表示四位数字年份。例如:(2017返回2017)
  %m 表示两位数字月份。例如:(01,02,....,12)
  %c  表示数字的月份。例如:(1,2,3,4.....,12)
  %M 表示月明,英文名称。
  %d  表示两位数字的天数。例如:(01,02,03,.....31)
  %e 表示数字的天数。例如(1,2,3,4,.....,31)
  %H 表示两位数字的小时数,24小时制。例如:(01,02,.....,24)
  %i  表示两位数字的分钟数。例如:(01,02...,60)
  %S %s 表示两位数字的秒数。例如:(01,02...,60)
  (7)DATEDIFF(d1,d2) 返回d1与d2相差的天数
  例如:SELECT DATEDIFF('2017-06-07','2017-06-06') FROM DUAL;
  输出:1
  (8)DATE_ADD(d,INTERVAL y type) 给日期加上指定类型y值
  例如:select DATE_ADD('2017-06-07',Interval 1 month) from dual;
  输出:2017-07-07
  Type参数:
  YEAR 表示年
  MONTH 表示月
  DAY 表示日
  HOUR 表示小时
  MINUTE 表示分钟
  SECOND 表示秒
  (9)TO_DAYS(date) 返回date从0年以来的天数。
4.流程控制类函数
  (1)IF(v,t,f) 如果v为真返回t,否则返回f
  例如:SELECT IF(1!=1,'1','2') FROM DUAL;
  输出:2
  (2)IFNULL(v1,v2) 如果v1不为null返回v1,否则返回v2
  例如:SELECT IFNULL(NULL,'1') FROM DUAL;
  输出:1
  (3)CASE WHEN v then v1 end 判断如果v为真返回v1
  例如:SELECT CASE WHEN 1=1 THEN 'true' ELSE 'false' END FROM DUAL;
  输出:true
  例如:SELECT CASE WHEN 1!=1 THEN 'true' WHEN 2=2 THEN 'test' ELSE 'false' END FROM DUAL;
  输出:test
5.转换类函数
  (1)CAST(v as type) 转换数据类型。
  Type参数:
  字符型:CHAR
  日期:DATE
  时间:TIME
  日期时间型:DATETIME
  浮点数:DECIMAL
  整数:SIGNED
  无符号整数:UNSIGNED
6.数据库类函数
  (1)DATABASE() 返回当前数据库名称
  (2)VERSION() 返回当前数据库版本
  (3)INET_ATON(ip) 返回数字表示的IP
  (4)INET_NTOA(num) 将数字表示的IP转换为IP
  (5)PASSWORD(s) 返回加密版本
  (6)MD5(s) 返回MD5加密值


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614374-1-1.html 上篇帖子: 第9章 mysql 下篇帖子: mysql数据库对象导入PowerDesigner和powerDesigner模板导入mysql数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表