结合MySQL自带的帮助文档列一下MySQL数据库中常用的一些函数。

事实证明:MySQL的联机帮助资料非常实用,希望哪一天可爱的Oracle可以像MySQL学习一下,她可以让您基本不用查看其他的资料就将函数的基本使用方法和示例尽收眼底。

废话少说,直入主题

一、常用字符串函数

二、数值函数

三、日期和时间函数

四、MySQL控制流程函数

1.IF(expr1,expr2,expr3)函数:如果expr1为真则返回expr2,否则返回expr3

2.IFNULL(expr1,expr2)函数:若expr1为NULL则返回expr2内容

3.NULLIF(expr1,expr2)函数:若expr1 = expr2则返回NULL,否则返回expr1

4.CASE函数

五、其他常用函数

时间格式:或者将里面的和java对比的将答谢的换程小写。

根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)

%W 星期名字(Sunday……Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun……Sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(Jan……Dec)

%j 一年中的天数(001……366)

%H 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%I 小时(01……12)

%l 小时(1……12)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)

%s 秒(00……59)

%p AM或PM

%w 一个星期中的天数(0=Sunday ……6=Saturday )

%U 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 一个文字“%”。

所有的其他字符不做解释被复制到结果中。

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');

-> 'Saturday October 1997'

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');

-> '22:23:00'

mysql> select DATE_FORMAT('1997-10-04 22:23:00',

'%D %y %a %d %m %b %j');

-> '4th 97 Sat 04 10 Oct 277'

mysql> select DATE_FORMAT('1997-10-04 22:23:00',

'%H %k %I %r %T %S %w');

-> '22 22 10 10:23:00 PM 22:23:00 00 6'

一、常用字符串函数

1.CONCAT(str1,str2,...)

mysql> ? concat;

mysql> SELECT CONCAT('My', 'S', 'QL');

+-------------------------+

| CONCAT('My', 'S', 'QL') |

+-------------------------+

| MySQL                    |

+-------------------------+

2.INSERT(str,pos,len,newstr)

mysql> ? insert function;

mysql> SELECT INSERT('Quadratic', 3, 4, 'What');

+-----------------------------------+

| INSERT('Quadratic', 3, 4, 'What') |

+-----------------------------------+

| QuWhattic                          |

+-----------------------------------+

3.LOWER(str)

mysql> ? lower

mysql> SELECT LOWER('QUADRATICALLY');

+------------------------+

| LOWER('QUADRATICALLY') |

+------------------------+

| quadratically           |

+------------------------+

4.UPPER(str)

mysql> ? upper

mysql> SELECT UPPER('Hej');

+--------------+

| UPPER('Hej') |

+--------------+

| HEJ           |

+--------------+

5.LEFT(str,len)

mysql> ? left

mysql> SELECT LEFT('foobarbar', 5);

+----------------------+

| LEFT('foobarbar', 5) |

+----------------------+

| fooba                 |

+----------------------+

6.RIGHT(str,len)

mysql> ? right

mysql> SELECT RIGHT('foobarbar', 4);

+-----------------------+

| RIGHT('foobarbar', 4) |

+-----------------------+

| rbar                   |

+-----------------------+

7.LPAD(str,len,padstr)

mysql> ? lpad

mysql> SELECT LPAD('hi',4,'??');

+-------------------+

| LPAD('hi',4,'??') |

+-------------------+

| ??hi               |

+-------------------+

8.RPAD(str,len,padstr)

mysql> ? rpad

mysql> SELECT RPAD('hi',5,'?');

+------------------+

| RPAD('hi',5,'?') |

+------------------+

| hi???             |

+------------------+

9.LTRIM(str)

mysql> ? ltrim

mysql> SELECT LTRIM('   barbar');

+-------------------+

| LTRIM('   barbar') |

+-------------------+

| barbar             |

+-------------------+

10.RTRIM(str)

mysql> ? rtrim

mysql> SELECT RTRIM('barbar    ');

+--------------------+

| RTRIM('barbar    ') |

+--------------------+

| barbar              |

+--------------------+

11.TRIM(str)

mysql> ? trim

mysql> SELECT TRIM('   bar    ');

+------------------+

| TRIM('   bar    ') |

+------------------+

| bar               |

+------------------+

12.REPEAT(str,count)

mysql> ? repeat function;

mysql> SELECT REPEAT('MySQL', 3);

+--------------------+

| REPEAT('MySQL', 3) |

+--------------------+

| MySQLMySQLMySQL     |

+--------------------+

13.REPLACE(str,from_str,to_str)

mysql> ? replace

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');

+-------------------------------------+

| REPLACE('www.mysql.com', 'w', 'Ww') |

+-------------------------------------+

| WwWwWw.mysql.com                     |

+-------------------------------------+

14.STRCMP(expr1,expr2)

mysql> ? strcmp

mysql> SELECT STRCMP('text', 'text2'),STRCMP('text2', 'text'),STRCMP('text', 'text');

+-----------------------+-----------------------+----------------------+

|STRCMP('text', 'text2')|STRCMP('text2', 'text')|STRCMP('text', 'text')|

+-----------------------+-----------------------+----------------------+

|                     -1 |                       1|                      0|

+-----------------------+-----------------------+----------------------+

15.SUBSTRING

mysql> ? substring

SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len),

SUBSTRING(str FROM pos FOR len)

mysql> SELECT SUBSTRING('Secooler',3,4), SUBSTRING('Secooler',6);

+---------------------------+-------------------------+

| SUBSTRING('Secooler',3,4) | SUBSTRING('Secooler',6) |

+---------------------------+-------------------------+

| cool                       | ler                      |

+---------------------------+-------------------------+

二、数值函数

1.ABS(X) 取绝对值函数

mysql> ? abs

mysql> SELECT ABS(-32);

+----------+

| ABS(-32) |

+----------+

|        32 |

+----------+

2.CEILING(X), CEIL(X) 取天棚函数

mysql> ? ceil

mysql> SELECT CEILING(1.23), CEIL(-1.23);

+---------------+-------------+

| CEILING(1.23) | CEIL(-1.23) |

+---------------+-------------+

|              2 |           -1 |

+---------------+-------------+

3.FLOOR(X) 取地板函数

mysql> ? floor

mysql> SELECT FLOOR(1.23),FLOOR(-1.23);

+-------------+--------------+

| FLOOR(1.23) | FLOOR(-1.23) |

+-------------+--------------+

|            1 |            -2 |

+-------------+--------------+

4.MOD(N,M), N % M, N MOD M 取模函数

mysql> ? mod

mysql> SELECT MOD(234, 10), 253 % 7, MOD(29,9), 29 MOD 9;

+--------------+---------+-----------+----------+

| MOD(234, 10) | 253 % 7 | MOD(29,9) | 29 MOD 9 |

+--------------+---------+-----------+----------+

|             4 |        1 |          2 |         2 |

+--------------+---------+-----------+----------+

5.RAND(), RAND(N) 取0-1之间的随机数函数mysql> ? rand

mysql> SELECT RAND(), RAND();

+------------------+-----------------+

| RAND()            | RAND()           |

+------------------+-----------------+

| 0.77874226009356 | 0.5317868818825 |

+------------------+-----------------+

6.TRUNCATE(X,D) 返回数字X被截断为D位小数的结果

mysql> ? truncate

mysql> SELECT TRUNCATE(1.223,1), TRUNCATE(1.999,1), TRUNCATE(-1.999,2);

+-------------------+-------------------+--------------------+

| TRUNCATE(1.223,1) | TRUNCATE(1.999,1) | TRUNCATE(-1.999,2) |

+-------------------+-------------------+--------------------+

|                1.2 |                1.9 |               -1.99 |

+-------------------+-------------------+--------------------+

三、日期和时间函数

1.CURDATE() 当前日期函数

mysql> ? curdate

mysql> SELECT CURDATE(),CURDATE() + 0;

+------------+---------------+

| CURDATE()   | CURDATE() + 0 |

+------------+---------------+

| 2009-07-03 |       20090703 |

+------------+---------------+

2.CURTIME() 当前时间函数

mysql> ? curtime

mysql> SELECT CURTIME(), CURTIME() + 0;

+-----------+---------------+

| CURTIME() | CURTIME() + 0 |

+-----------+---------------+

| 12:07:08   |         120708 |

+-----------+---------------+

3.NOW() 当前日期和时间函数

mysql> ? now

mysql> SELECT NOW(), NOW() + 0;

+---------------------+----------------+

| NOW()                | NOW() + 0       |

+---------------------+----------------+

| 2009-07-03 12:07:54 | 20090703120754 |

+---------------------+----------------+

4.UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) 日期date的时间戳

mysql> ? unix_timestamp

mysql> SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP('1981-02-15 23:23:00');

+------------------+---------------------------------------+

| UNIX_TIMESTAMP() | UNIX_TIMESTAMP('1981-02-15 23:23:00') |

+------------------+---------------------------------------+

|        1246594366 |                              351098580 |

+------------------+---------------------------------------+

5.FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format) 返回时间戳的日期值(UNIX_TIMESTAMP的反函数)

mysql> ? from_unixtime

mysql> SELECT FROM_UNIXTIME(1246594135),FROM_UNIXTIME(351098580);

+---------------------------+--------------------------+

| FROM_UNIXTIME(1246594135) | FROM_UNIXTIME(351098580) |

+---------------------------+--------------------------+

| 2009-07-03 12:08:55        | 1981-02-15 23:23:00       |

+---------------------------+--------------------------+

6.WEEK(date[,mode]) 返回所给日期是一年中的第几周

mysql> ? week

mysql> SELECT WEEK('1981-02-15');

+--------------------+

| WEEK('1981-02-15') |

+--------------------+

|                   7 |

+--------------------+

7.YEAR(date)

mysql> ? year

mysql> SELECT YEAR('81-02-15');

+------------------+

| YEAR('81-02-15') |

+------------------+

|              1981 |

+------------------+

8.HOUR(time) 返回时间的小时信息

mysql> ? hour

mysql> SELECT HOUR('10:05:03');

+------------------+

| HOUR('10:05:03') |

+------------------+

|                10 |

+------------------+

9.MINUTE(time) 返回时间的分钟信息

mysql> SELECT MINUTE('98-02-03 10:05:03');

+-----------------------------+

| MINUTE('98-02-03 10:05:03') |

+-----------------------------+

|                            5 |

+-----------------------------+

10.MONTHNAME(date) 返回时间的完整月份名字mysql> SELECT MONTHNAME('1981-02-15');

+-------------------------+

| MONTHNAME('1981-02-15') |

+-------------------------+

| February                 |

+-------------------------+

11.DATE_FORMAT(date,format) 根据format格式date显示形式

mysql> ? date_format

mysql> SELECT DATE_FORMAT('1981-02-15 23:23:00', '%W %M %Y');

+------------------------------------------------+

| DATE_FORMAT('1981-02-15 23:23:00', '%W %M %Y') |

+------------------------------------------------+

| Sunday February 1981                            |

+------------------------------------------------+

12.DATE_ADD(date,INTERVAL expr type) 返回与所给日期date相差INTERVAL的时间段mysql> select now() current, date_add(now(), INTERVAL 31 day) after31days;

+---------------------+---------------------+

| current              | after31days          |

+---------------------+---------------------+

| 2009-07-03 12:34:15 | 2009-08-03 12:34:15 |

+---------------------+---------------------+

13.DATEDIFF(expr,expr2) 计算两个日期之间相差的天数mysql> SELECT DATEDIFF(now(),'1981-02-15 23:23:00');

+---------------------------------------+

| DATEDIFF(now(),'1981-02-15 23:23:00') |

+---------------------------------------+

|                                  10365 |

+---------------------------------------+

四、MySQL控制流程函数

首先创建演示表salary

mysql> use test;

mysql> create table salary (userid int, salary decimal(9,2));

mysql> insert into salary values (1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);

mysql> select * from salary;

+--------+---------+

| userid | salary   |

+--------+---------+

|       1 | 1000.00 |

|       2 | 2000.00 |

|       3 | 3000.00 |

|       4 | 4000.00 |

|       5 | 5000.00 |

|       1 |     NULL |

+--------+---------+

1.IF(expr1,expr2,expr3)函数:如果expr1为真则返回expr2,否则返回expr3

mysql> ? IF FUNCTION

mysql> select IF( salary > 2000, 'High', 'Low') from salary;

+------------------------------------+

| if ( salary > 2000, 'High', 'Low') |

+------------------------------------+

| Low                                 |

| Low                                 |

| High                                |

| High                                |

| High                                |

| Low                                 |

+------------------------------------+

2.IFNULL(expr1,expr2)函数:若expr1为NULL则返回expr2内容mysql> ? IFNULL

mysql> select ifnull(salary,0) from salary;

+------------------+

| ifnull(salary,0) |

+------------------+

|           1000.00 |

|           2000.00 |

|           3000.00 |

|           4000.00 |

|           5000.00 |

|              0.00 |

+------------------+

3.NULLIF(expr1,expr2)函数:若expr1 = expr2则返回NULL,否则返回expr1

mysql> ? NULLIF

mysql> select nullif(salary,2000) from salary;

+---------------------+

| nullif(salary,2000) |

+---------------------+

|              1000.00 |

|                 NULL |

|              3000.00 |

|              4000.00 |

|              5000.00 |

|                 NULL |

+---------------------+

4.CASE函数

语法如下:

CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END

CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

mysql> ? CASE FUNCTION

mysql> select case when salary <= 2000 then 'Low' else 'High' end from salary;

+-----------------------------------------------------+

| case when salary <= 2000 then 'Low' else 'High' end |

+-----------------------------------------------------+

| Low                                                  |

| Low                                                  |

| High                                                 |

| High                                                 |

| High                                                 |

| High                                                 |

+-----------------------------------------------------+

mysql> select case salary when 1000 then 'Low' when 2000 then 'Mid' else 'High' end from salary;

+-----------------------------------------------------------------------+

| case salary when 1000 then 'Low' when 2000 then 'Mid' else 'High' end |

+-----------------------------------------------------------------------+

| Low                                                                    |

| Mid                                                                    |

| High                                                                   |

| High                                                                   |

| High                                                                   |

| High                                                                   |

+-----------------------------------------------------------------------+

五、其他常用函数

1.DATABASE()函数:用于查询当前使用数据库的名字(类似Oracle的show user;)

mysql> ? database

mysql> SELECT DATABASE();

+------------+

| DATABASE() |

+------------+

| test        |

+------------+

2.VERSION()函数:用户查询所使用数据库的版本

mysql> ? version

mysql> SELECT VERSION();

+------------+

| VERSION()   |

+------------+

| 5.0.22-log |

+------------+

3.USER()函数:查询当前登陆用户名

mysql> SELECT USER();

+----------------+

| USER()          |

+----------------+

| root@localhost |

+----------------+

4.INET_ATON(expr)函数:查询IP地址的网络字节序表示,反函数是INET_NTOA

mysql> SELECT INET_ATON('144.194.192.183');

+------------------------------+

| INET_ATON('144.194.192.183') |

+------------------------------+

|                    2428682423 |

+------------------------------+

5.INET_NTOA(expr)函数:查询网络字节序代表的IP地址,是INET_ATON的反函数mysql> ? inet_ntoa

mysql> SELECT INET_NTOA(2428682423);

+-----------------------+

| INET_NTOA(2428682423) |

+-----------------------+

| 144.194.192.183        |

+-----------------------+

六、小结

有事没事多请教一下帮助is a good idea. 也许这就是开源的好处,她会尽可能的考虑到您查询和参考的便利性。MySQL的函数还是很丰富的,以上实验用到的函数都是非常常用的。

这个小文儿,可以“一看了之”,只要你能想到MySQL提供的这些功能函数,check一下帮助系统,就什么都得到啦。

如果这些函数仍然没有满足您的求知欲望,敬请参考官方文档《第12章:函数和操作符》,地址为:http://dev.mysql.com/doc/refman/5.1/zh/functions.html

mysql+if+x+mod+2_MySQL常用函数 二相关推荐

  1. 9_InfluxDB常用函数(二)选择类函数(TOP() BOTTOM() FIRST() LAST() MAX() MIN() PERCENTILE())

    9.InfluxDB学习之InfluxDB常用函数(二)选择类函数 转自:http://www.linuxdaxue.com/influxdb-study-influxdb-selectors-fun ...

  2. MySQL常用函数 二

    结合MySQL自带的帮助文档列一下MySQL数据库中常用的一些函数. 事实证明:MySQL的联机帮助资料非常实用,希望哪一天可爱的Oracle可以像MySQL学习一下,她可以让您基本不用查看其他的资料 ...

  3. mysql month函数值类型_MySQL常用函数(分类别整理)

    MySQL常用函数(分类别整理) 2021-01-30 一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最 ...

  4. mysql if value t f_mysql常用函数

    函数介绍 事先提供好的一些功能可以直接使用 函数可以用在SELECT语句及其子句 也可以用在UPDATE,DELETE语句当中. 函数分类 字符串函数 数值函数 日期和时间函数 流程函数 其它函数 字 ...

  5. mysql range用法_MySQL的常用函数

    MySQL常用函数 用户信息 系统用户名 mysql> select system_user(); 所有用户名 mysql> select user(); 当前用户名 mysql> ...

  6. mysql数值类型总结及常用函数

    最近在学习下,总结一下mysql数值类型: mysql字符类型分: 1.整数类型: 字节                    值范围 INTERGER               1         ...

  7. 【MySQL】(6)常用函数

    文章目录 日期函数 获取日期 日期计算 字符串函数 charset concat length substring replace instr strcmp ltrim, rtrim, trim 数学 ...

  8. excel range 判断日期型_EXCEL常用函数二

    [推荐阅读] [Excel视频教学]求和及快速求和 [Excel视频教学]跨表快速求和 [Excel视频教学]函数-相对绝对混合引用 [Excel视频教学]函数-相对绝对混合引用-快速制作九九乘法表 ...

  9. mysql union update_MYSQL:union, 以及常用函数

    /** 燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it **/ header('content-type:text/html; charset=utf- ...

最新文章

  1. oracle怎么查别的库,ORACLE_SID、实例名和数据库名的区别及查看方法
  2. php删除所以文件,php如何删除所有文件
  3. 站长就是个太监^_^
  4. hibernate mysql自定义变量_hibernate如何得到mysql的变量
  5. 图的存储结构matlab,matlab存储 一幅图像的的函数为( )
  6. c语言实验题——字符串排序,C语言中实现“三个数由小到大排序”的多种方法浅析...
  7. kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
  8. long long _int64使用总结
  9. API接口设计之RESTful软件架构风格
  10. ant+testng 搭建
  11. mysql sslcipher_解决mysql数据库创建用户报错Field 'ssl_cipher' doesn't have a default value...
  12. 胡波外挂做模具3D装配的方法
  13. matlab天线测试数据处理,通信天线建模与MATLAB仿真分析.pdf
  14. 主语从句、宾语从句、表语从句、同位语从句
  15. ctf ddos数据包 杂项 流量_抗DDoS攻击设备化解危机于无形
  16. NDK/C++ 耗时统计类TimeUtils
  17. 字节跳动一面c++视频面试(第二个部门,效率工程部门)(一面通过)
  18. IOS 应用内打开三方地图app直接导航(高德坐标)
  19. 结合MBTI人格理论探讨爱因斯坦的两次婚姻
  20. 2017最新版SCI期刊目录发布

热门文章

  1. PAT 1003 Sharing (25)
  2. mysql集群之keepalived简单搭建
  3. tmpfs——Linux的一种虚拟内存文件系统
  4. 简体中文 Windows 7 Beta 体验(图)
  5. ZZULIOJ 1087: 获取出生日期(多实例测试)
  6. 小程序采用mvvm设计模式_滴滴重磅开源跨平台统一 MVVM 框架 Chameleon
  7. 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵
  8. 欧拉定理(洛谷-P5091)(扩展欧拉定理实现)
  9. Object Clustering(POJ-3214)
  10. 数的划分(信息学奥赛一本通-T1440)