`
chengyue2007
  • 浏览: 1489977 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

mysql常用函数详解和实例

阅读更多

结合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常用函数及概念

    ### MySQL 常用函数及概念详解 #### 一、MySQL 数据库优化——重点函数与概念应用 在处理大规模数据时,对MySQL数据库进行优化至关重要。优化不仅能够提高查询速度,减少服务器负担,还能有效提升应用程序的整体...

    phpmysql常用的函数

    ### PHP与MySQL常用函数详解 #### 一、引言 在Web开发中,PHP与MySQL是经常被一起使用的强大组合。通过PHP可以方便地与MySQL数据库进行交互,实现数据的增删改查等功能。本文将详细介绍一些在PHP操作MySQL数据库时...

    MySQL常用语句指令和功能详解.rar

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它具有高效、稳定和易于学习的特点。...在“MySQL常用语句指令和功能详解.txt”中,您将找到这些概念的详细解释和实例,有助于进一步提升您的MySQL技能。

    mysql count详解及函数实例代码

    总之,`COUNT()`是MySQL中不可或缺的统计函数,它能够帮助我们理解数据库中的数据分布和规模。正确使用`COUNT(*)`、`COUNT(column_name)`和`COUNT(DISTINCT column_name)`,结合`GROUP BY`,可以实现强大的数据分析...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-张亚V4.pdf │ 第十三课MySQL5.7高可用架构之Mycat.pdf │ 第十三...

    php+mysql签到实例

    【PHP+MySQL签到实例详解】 在Web开发中,PHP和MySQL是常用的技术组合,用于构建动态、数据驱动的网站。本实例将深入探讨如何利用这两者实现一个基础的签到功能。签到系统通常用于会议、活动或者学校等场景,帮助...

    MySQL使用集合函数进行查询操作实例详解

    MySQL中的集合函数是数据库查询中常用的工具,它们用于对一组数据进行聚合运算,例如计算总数、求和、平均值、最大值和最小值等。在本篇实例详解中,我们将深入探讨如何使用这些函数进行查询操作。 首先,我们来看...

    mysql常用命令

    ### MySQL常用命令详解 #### 一、退出MySQL操作界面:`quit` - **命令格式**:`quit` - **功能描述**:此命令用于退出MySQL客户端。当用户完成数据库的操作或者不再需要继续交互时,可以通过在命令行界面输入`quit...

    Python 操作MySQL详解及实例

    Python提供了多种库来实现与MySQL数据库的连接和操作,其中PyMySQL和SQLAlchemy是最常用的两个。本文将重点介绍使用PyMySQL库进行MySQL数据库操作的方法。 首先,PyMySQL是Python的一个纯Python实现的MySQL驱动程序...

    MySQL基础与实例教程教学大纲.doc

    课程任务涵盖数据库基础知识、MySQL 的安装配置、数据库和表的操作、事务与锁管理、存储过程和视图的创建与管理,以及函数的应用。 二、教学重点与难点 教学重点在于 MySQL 服务器配置、存储引擎、字符集、存储过程...

    PHP常用函数手册(电子书)

    **PHP常用函数手册详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域,PHP的地位不可替代。它允许开发者在服务器端生成动态网页内容,提供丰富的内置函数来处理各种任务,如...

    PHP常用库函数详解

    **PHP常用库函数详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域。它的库函数丰富多样,为开发者提供了强大的功能支持。本篇文章将详细解析一些PHP中的常用库函数,包括它们...

    测试通过的dtree实例

    【dtree实例详解】 在IT领域,决策树(Decision Tree,简称dtree)是一种广泛应用的机器学习算法,常用于分类和回归任务。本实例“测试通过的dtree实例”主要展示了如何实现一个功能完备的dtree操作,包括基本的...

    mysql教程ssh配置

    - `mysql数据库常用操作`: 包括查询(SELECT),插入(INSERT),更新(UPDATE),删除(DELETE)等SQL语句,以及事务处理,索引,视图,存储过程等高级概念。 - `MYSQL命令大全`: 了解完整的MySQL命令行工具用法...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...

    PHP实例(源码)详解

    在PHP的世界里,实例和源码是学习的关键。"PHP实例(源码)详解"针对的是那些希望深入了解PHP编程的新手。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,可以嵌入到HTML中执行。这个压缩包很可能是为初学者...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。.. 本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很...

Global site tag (gtag.js) - Google Analytics