MySQL数据库的函数

来源:互联网 发布:上海知金教育 编辑:程序博客网 时间:2024/05/20 01:35

MySQL数据库的函数

MySQL函数共有5种,分别为:

  • 控制流程函数
  • 字符串函数
  • 数值函数
  • 日期和时间函数
  • 聚合函数

1. 控制流程函数

1. CASE / WHEN

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END例如:mysql> select case 1 when 1 then 'one' when 2 then 'two' else 'more' end result;//如果value(1)为1,则显示one,如果为2,则显示two,否则显示more+--------+| result |+--------+| one    |+--------+

CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END mysql>  select case when 1 > 0 then 'true' else 'false' end result;//如果condition(1 > 0)状态为真则显示true,否则显示false+--------+| result |+--------+| true   |+--------+

例如: 查询员工工资等级

首先建立一张员工等级表如下:mysql> select * from SALGRADE;+-------+-------+-------+| grade | losal | hisal |+-------+-------+-------+|     1 |   700 |  1200 ||     2 |  1201 |  1400 ||     3 |  1401 |  2000 ||     4 |  2001 |  3000 ||     5 |  3001 |  9999 |+-------+-------+-------+mysql> select ename 员工, sal 薪金, case grade when 1 then '一级'       when 2 then '二级'       when 3 then '三级'       when 4 then '四级'       when 5 then '五级'       end 等级       from EMP, SALGRADE      where sal between losal and hisal;+--------+---------+--------+| 员工   | 薪金    | 等级   |+--------+---------+--------+| xxxx   | 1200.00 | 一级   || SMITH  |  800.00 | 一级   || ALLEN  | 1600.00 | 三级   || WARD   | 1250.00 | 二级   || JONES  | 2975.00 | 四级   || MARTIN | 1250.00 | 二级   || BLAKE  | 2850.00 | 四级   || CLARK  | 2450.00 | 四级   || SCOTT  | 3000.00 | 四级   || KING   | 5000.00 | 五级   || TURNER | 1500.00 | 三级   || ADAMS  | 1100.00 | 一级   || JAMES  |  950.00 | 一级   || FORD   | 3000.00 | 四级   || MILLER | 1300.00 | 二级   |+--------+---------+--------+

1.2 IF

IF(expr1, expr2, expr3)含义:如果expr1是TRUE(不为0且不为NULL)则返回expr2的值否则返回expr3的值。mysql> select if(1>2, 'yes', 'no') result;+--------+| result |+--------+| no     |+--------+

1.3 IFNULL

IFNULL(expr1, expr2)含义:如果expr1不为NULL,则IFNULL的返回值为expr1的值,否则返回expr2的值。mysql> select ifnull(1, 0) result;+--------+| result |+--------+|      1 |+--------+

2. 字符串函数

2.1 ASCII(str)

返回值为字符串str的最左字符的数值,如果str为空字符串,则返回值为0;如果str为NULL,则返回值为NULL。ASCII()用于带有从0到255的数值的字符。mysql> select ascii('abc');+--------------+| ascii('abc') |+--------------+|           97 |+--------------+

2.2 BIN(N)

返回值为N的二进制值的字符串mysql> select bin(12);+---------+| bin(12) |+---------+| 1100    |+---------+

2.3 CHAR(N, …)

CHAR()将每个参数N理解为一个整数,其返回值为一个包含这些整数的代码值所给出的字符的字符串,NULL值被省略。mysql> SELECT CHAR(77,121,83,81,76);+-----------------------+| CHAR(77,121,83,81,76) |+-----------------------+| MySQL                 |+-----------------------+

3. 数值函数

3.1算术操作符

mysql> select 1+1;+-----+| 1+1 |+-----+|   2 |+-----+mysql> select 3/7;+--------+| 3/7    |+--------+| 0.4286 |+--------+

3.2 数学函数

mysql> SELECT ABS(-32);//返回绝对值+----------+| ABS(-32) |+----------+|       32 |+----------+ASIN(X) 是反正弦函数ACOS(X)是反余弦函数.......

4.日期和时间函数

4.1 now

返回当前日期

mysql> select now();+---------------------+| now()               |+---------------------+| 2017-02-24 17:51:01 |+---------------------+

4.2 date_add/adddate

返回日期加天数后的日期

mysql> select date_add('1998-02-02', INTERVAL 28 DAY) newday;+------------+| newday     |+------------+| 1998-03-02 |+------------+//adddate与date_add用法相同,等价于如下:SELECT adddate('1998-02-02', INTERVAL 28 DAY);SELECT adddate('1998-02-02', 28);   //date_add无此用法

4.3datediff

返回两个日期的时间差

mysql> select DATEDIFF(now(),'2015-07-15') 时间差;+-----------+| 时间差    |+-----------+|       590 |+-----------+mysql> select DATEDIFF('2015-07-15', '2017-07-07') 时间差;+-----------+| 时间差    |+-----------+|      -723 |+-----------+

4.3 date_format

根据format字符串安排date值的格式
可以有的格式有:

格式  描述%a  缩写星期名%b  缩写月名%c  月,数值%D  带有英文前缀的月中的天%d  月的天,数值(00-31)%e  月的天,数值(0-31)%f  微秒%H  小时 (00-23)%h  小时 (01-12)%I  小时 (01-12)%i  分钟,数值(00-59)%j  年的天 (001-366)%k  小时 (0-23)%l  小时 (1-12)%M  月名%m  月,数值(00-12)%p  AM 或 PM%r  时间,12-小时(hh:mm:ss AM 或 PM)%S  秒(00-59)%s  秒(00-59)%T  时间, 24-小时 (hh:mm:ss)%U  周 (00-53) 星期日是一周的第一天%u  周 (00-53) 星期一是一周的第一天%V  周 (01-53) 星期日是一周的第一天,与 %X 使用%v  周 (01-53) 星期一是一周的第一天,与 %x 使用%W  星期名%w  周的天 (0=星期日, 6=星期六)%X  年,其中的星期日是周的第一天,4 位,与 %V 使用%x  年,其中的星期一是周的第一天,4 位,与 %v 使用%Y  年,4 位%y  年,2 位

例如:取出当前时间的时分秒

mysql> select DATE_FORMAT(now(), '%H:%i:%s');+--------------------------------+| DATE_FORMAT(now(), '%H:%i:%s') |+--------------------------------+| 18:07:35                       |+--------------------------------+

5. 聚合函数

聚合函数的使用方法点击

0 0
原创粉丝点击