`
zhaomengsen
  • 浏览: 207375 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

【实验】【MySQL】MySQL常用函数“自助式”示例演示全过程

阅读更多
结合MySQL自带的帮助文档列一下MySQL数据库中常用的一些函数。
事实证明:MySQL的联机帮助资料非常实用,希望哪一天可爱的Oracle可以像MySQL学习一下,她可以让您基本不用查看其他的资料就将函数的基本使用方法和示例尽收眼底。
废话少说,直入主题

一、常用字符串函数
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

好运!

-- The End --

分享到:
评论

相关推荐

    mysql存储过程和存储函数的示例

    mysql 存储过程 ,存储函数的调用示例

    sql_mysql_oracle常用函数

    sql,mysql,oracle常用的函数

    MySQL常用函数

    包含了MySQL常用的所有函数及详解。IFNULL(expr1,expr2),FROM_UNIXTIME。

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及异常处理等高级特性。下面将详细解析报告中的每个知识点。 1. 创建存储过程 存储过程是一种在...

    Mysql常用函数列表

    Mysql常用函数列表 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 …… 数学类 ABS (number2 ) //绝对值 …… 日期...

    MySQL触发器、存储过程、自定义函数、视图示例

    ### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...

    mysql-数据库基本操作-实验二.doc

    在实验过程中,如果遇到不熟悉或难以理解的函数,可以参考MySQL的官方文档或者相关的教程书籍,通过实际操作和案例分析来加深理解。对于实验中遇到的问题,如日期函数和JSON函数的使用,可以通过多做练习,对照书中...

    mysql常用函数汇总.chm

    Mysql的常用函数整体, 从网上收集的一些常用函数, 进行汇总整体成文档 MySQL控制流函数: CASE WHEN[test1] THEN [result1]...ELSE [default] END如果testN是真,则返回resultN,否则返回default CASE [test] WHEN...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    这份手册涵盖了MySQL中各种内置函数的功能、语法以及使用示例,是学习和工作中不可或缺的工具。 首先,手册中的"函数"部分会详细介绍如何在SQL查询中使用这些函数来处理数据。函数大致可以分为以下几类: 1. 数学...

    Mysql存储过程和函数

    ### MySQL存储过程与函数详解 #### 一、概述 MySQL是一种广泛使用的开源关系型数据库管理系统,在数据管理和存储方面提供了强大的支持。其中,存储过程和函数是MySQL提供的两种重要的编程特性,它们可以帮助开发者...

    MySql常用函数大全讲解

    ### MySQL常用函数详解 #### 一、数学函数 数学函数是MySQL中经常使用的一类函数,主要用于处理各种类型的数字,如整数、浮点数等。以下是一些常用的数学函数: 1. **ABS(X)**: 返回`X`的绝对值。 - 示例:`...

    关系型数据库中MySQL常用函数的作用和例子说明

    内容概要:笔者将MySQL常用的函数分为字符串函数、窗口函数、日期和时间函数、聚合函数、数值型函数、逻辑判断函数六类。将每一类别中常用的函数进行汇总,主要向读者介绍各个类别中常用函数的作用,在介绍的同时给...

    MySQL函数大全及用法示例

    根据给定的文件内容,我们可以了解到多种MySQL中的字符串函数及其用法示例。下面详细介绍这些函数的知识点。 1. ASCII函数:返回字符串str的第一个字符的ASCII值。如果str是空串,则返回0。如ascii('2')返回50。 2...

    Mysql存储过程常用语句模板

    Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三...

    MySQL关于自定义函数以及常用函数的组织点的总结

    MySQL关于自定义函数以及常用函数的组织点的总结(例如日期函数)

    MYSQL 日期函数大全

    MYSQL 日期函数大全,供大家一起共同分享学习。

    第11章MySQL存储过程与函数.docx

    MySQL 存储过程与函数 MySQL 存储过程和函数是数据库中定义的一组用户定义的 SQL 语句集合。它们之间的区别在于: 1. 存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。 2. 存储过程可以返回参数,而...

    mysql函数大全,mysql

    STRCMP STRCMP()函数是MySQL里比较字符串的最简单方式之一。这个函数接受两个参数——要被比较的字符串。如果这个两个字符串相同,它就返回0;如果第一个大于第二个,它就返回1;如果第一个小于第二个,它就返回-1 ...

    mysql常用坐标系转换函数.docx

    MySQL中的这两个函数——`84togcj2Lat`和`84togcj2Lon`,专门用于实现WGS84到GCJ02(也称为火星坐标系)的转换。 WGS84是全球最广泛使用的地理坐标系统,它是基于地球椭球体模型的,其中地球的平均半径约为6378.1...

    MySql常用内置函数

    内容概要:本文档介绍了 MySQL 数据库中的内置函数及其使用方法,包括日期时间函数、字符串函数、数学函数及其他常用函数。详细解释了每种类型的函数及其常见应用场景,提供了具体的 SQL 语句实例。 适合人群:MySQL...

Global site tag (gtag.js) - Google Analytics