1. 数学函数

ABS(x)           返回x的绝对值
BIN(x)            返回x的二进制(OCT返回八进制,HEX返回十六进制)
CEIL(x)或CEILING(x)    返回大于x的最小整数值
EXP(x)              返回值e(自然对数的底)的x次方
FLOOR(x)           返回小于x的最大整数值
GREATEST(x1,x2,...,xn)  返回集合中最大的值
LEAST(x1,x2,...,xn)        返回集合中最小的值
LN(x)                        返回x的自然对数
LOG(x,y)          返回x的以y为底的对数
MOD(x,y)                      返回x/y的余数(取模)
PI()            返回pi的值(圆周率)
POW(),POWER(x,y)    幂运算函数,返回x的y次方乘方的结果值
RAND(),RAND(x)      返回0到1的随机值,可以提供一个种子(x)
RADIANS(x),DEGREES(x)      角度与弧度互相转换函数
ROUND(x),ROUND(x,y)   返回四舍五入最接近x的整数;y表示小数位数,如果为负值,则保留x值到小数点左边y位
SIGN(x)            返回代表数字x的符号的值(-1/0/1)
SIN(x),COS(x),TAN(x)    正弦、余弦、正切函数,其反函数略
SQRT(x)           返回一个数的平方根
TRUNCATE(x,y)              同ROUND(x,y)函数,只是不四舍五入

示范:

mysql> select ceil(-3.35),ceiling(3.35);
+-------------+---------------+
| ceil(-3.35) | ceiling(3.35) |
+-------------+---------------+
| -3 | 4 |
+-------------+---------------+
1 row in set (0.00 sec) mysql> select rand(),rand(10);
+----------------------+--------------------+
| rand() | rand(10) |
+----------------------+--------------------+
| 0.039205047338460614 | 0.6570515219653505 |
+----------------------+--------------------+
1 row in set (0.02 sec) mysql> select round(-1.14),round(3.56,1),truncate(3.56,1),truncate(123.456,-2);
+--------------+---------------+------------------+----------------------+
| round(-1.14) | round(3.56,1) | truncate(3.56,1) | truncate(123.456,-2) |
+--------------+---------------+------------------+----------------------+
| -1 | 3.6 | 3.5 | 100 |
+--------------+---------------+------------------+----------------------+
1 row in set (0.00 sec)

2. 字符串函数

ASCII(char)                返回字符的ASCII码值
CHAR_LENGTH(str)/LENGTH(str)     返回字符串字符个数/返回字符串的字节长度
CONCAT(s1,s2...,sn)           将s1,s2...,sn连接成字符串;如果有任一参数为null,则返回值为NULL
CONCAT_WS(sep,s1,s2...,sn)      将s1,s2...,sn连接成字符串,并用sep字符间隔;如果sep为null,则结果为NULL
ELT(n,str1,str2,...strn)    如果n=1,返回str1;n=2,返回str2,......以此类推;如果n小于1或者大于参数的数目,则返回ULL
FIND_IN_SET(str,list)    分析逗号分隔的list列表,如果发现str,返回str在list中的位置
INSERT(str,x,y,instr)     将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果
LEFT(str,x)/RIGHT(str,x)   返回字符串str中最左边的x个字符/返回字符串str中最右边的x个字符
LOCATE(str1,str)、POSITION(str1 IN str)和INSTR(str, str1)       三个函数作用相同,返回字符串str1在字符串str中的开始位置
LOWER(str)或LCASE(str)             返回将字符串str中所有字符改变为小写后的结果
LPAD(s1,len,s2)/RPAD(s1,len,s2)    返回字符串s1,其左边由字符串s2填充到len字符长度;假如s1长度大于len,则截断/反之亦然
LTRIM(s) /RTRIM(s)/TRIM(s)       从字符串str中切掉左边的空格/右边的空格/两侧的空格
POSITION(substr,str)      返回子串substr在字符串str中第一次出现的位置
QUOTE(str)         用反斜杠转义str中的单引号
REPEAT(s,n)           返回字符串s重复n次的结果
REPLACE(s,s1,s2)         使用字符串s2替换字符串s中所有的字符串s1
REVERSE(str)               返回颠倒字符串str的结果          
SPACE(n)          返回一个由n个空格组成的字符串
STRCMP(s1,s2)         比较字符串s1和s2(s1<s2:-1;s1=s2:0;s1>s2:1)
SUBSTRING(s,n,len)和MID(s,n,len)  在字符串s中从第n位取len长度字符串;n可以是负值(从末尾计数)
TRIM(s1 FROM s)      去除字符串s两端所有的子字符串s1,如果s1为空,默认空格
UPPER(str)或UCASE(str)    返回将字符串str中所有字符转变为大写后的结果

示范:

mysql> select char_length('大家好aa'),length('大家好aa');
+----------------------------+-----------------------+
| char_length('大家好aa') | length('大家好aa') |
+----------------------------+-----------------------+
| 5 | 11 |
+----------------------------+-----------------------+
1 row in set (0.00 sec) mysql> select concat('My Table',' is good'),concat('My pan',null,'is not good'),lpad('test',10,'A'),lpad('hellouser',5,'B');
+-------------------------------+-------------------------------------+---------------------+-------------------------+
| concat('My Table',' is good') | concat('My pan',null,'is not good') | lpad('test',10,'A') | lpad('hellouser',5,'B') |
+-------------------------------+-------------------------------------+---------------------+-------------------------+
| My Table is good | NULL | AAAAAAtest | hello |
+-------------------------------+-------------------------------------+---------------------+-------------------------+
1 row in set (0.00 sec) mysql> select elt(3,'1st','2nd','3rd');
+--------------------------+
| elt(3,'1st','2nd','3rd') |
+--------------------------+
| 3rd |
+--------------------------+
1 row in set (0.00 sec)

3. 日期和时间函数

CURDATE()或CURRENT_DATE()   返回当前的日期
CURTIME()或CURRENT_TIME()    返回当前的时间
CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()  4个函数的作用相同,返回当前日期和时间值
DAYOFMONTH(d)    返回是一个月的第几天(1~31)
DAYOFYEAR(d)       返回是一年的第几天(1~366)
DAYOFWEEK(d)/WEEKDAY(d)      一星期中的第几天(1~7),1表示星期日/对应的工作日索引(0~6),0表示周一
MONTHNAME(date)   返回月份名
DAYNAME(d)       返回星期名(Sunday)
YEAR(d) /QUARTER(d)/MONTH(d)  返回年份(1000~9999)/季度(1-4)/月份值(1~12)/
HOUR(time)/MINUTE(time)/SECOND(time)   返回小时值(0~23)/分钟值(0~59)/秒数(0~59)
WEEK(d)   返回日期date为一年中第几周(0~53),可以用双参数来指定模式(第一周起始于周日?周一?返回值从0还是1开始等等)

TIME_TO_SEC(time)  返回已转化为秒的time参数
DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
DATE_SUB(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
DATE_FORMAT(date,fmt)  依照指定的fmt格式格式化日期date值

示范一:

mysql> select sysdate(),month(sysdate()),monthname(sysdate()),dayname(sysdate()),dayofweek(sysdate());
+---------------------+------------------+----------------------+--------------------+----------------------+
| sysdate() | month(sysdate()) | monthname(sysdate()) | dayname(sysdate()) | dayofweek(sysdate()) |
+---------------------+------------------+----------------------+--------------------+----------------------+
| 2013-11-12 14:11:01 | 11 | November | Tuesday | 3 |
+---------------------+------------------+----------------------+--------------------+----------------------+
1 row in set (0.06 sec)

示范二:

mysql> select date_add(sysdate(),interval 1 month),date_sub(sysdate(),interval 2 week),date_format(sysdate(),'%Y/%m/%D');
+--------------------------------------+-------------------------------------+-----------------------------------+
| date_add(sysdate(),interval 1 month) | date_sub(sysdate(),interval 2 week) | date_format(sysdate(),'%Y/%m/%D') |
+--------------------------------------+-------------------------------------+-----------------------------------+
| 2013-12-12 14:14:52 | 2013-10-29 14:14:52 | 2013/11/12th |
+--------------------------------------+-------------------------------------+-----------------------------------+

关于date_format()的参数描述,请参考:http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-format

4. 条件判断函数

4.1 IF(expr,v1,v2) 函数

IF(expr,v1,v2),如果表达式expr是true,则IF返回v1;否则返回v2。

4.2 IFNULL(v1,v2)函数

如果v1不为null,则返回v1;否则返回v2。

4.3 CASE函数

CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] ELSE [rn] END

该函数表示,如果expr值等于某个vn,则返回对应位置THEN后面的结果。如果与所有值都不相等,则返回ELSE后面的rn。

示范:

mysql> select case 2 when 1 then 'one' when 2 then 'two' else 'more' end;
+------------------------------------------------------------+
| case 2 when 1 then 'one' when 2 then 'two' else 'more' end |
+------------------------------------------------------------+
| two |
+------------------------------------------------------------+
1 row in set (0.01 sec)

5. 系统信息函数

CHARSET(str)        返回字符串自变量的字符集
DATABASE() 的SCHEMA()   返回当前数据库名
BENCHMARK(count,expr)    将表达式expr重复运行count次
CONNECTION_ID()         返回当前客户的连接ID
FOUND_ROWS()         返回最后一个SELECT查询进行检索的总行数
USER()/CURRENT_USER()/SESSION_USER()/SYSTEM_USER()     返回当前用户名与主机名组合
VERSION()              返回MySQL服务器的版本
LAST_INSERT_ID()      返回最后一个INSERT/UPDATE为AUTO_INCREMENT列设置的第一个发生的值(批量时),此值与表无关

6. 加密函数

AES_ENCRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
AES_DECRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)          使用key作为密钥解密加密字符串str
ENCRYPT(str,salt)         使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
ENCODE(str,key)          使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
MD5()               计算字符串str的MD5校验和
PASSWORD(str)            返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
SHA()            计算字符串str的安全散列算法(SHA)校验和

7. 聚合函数

AVG(col)           返回指定列的平均值
COUNT(col)         返回指定列中非NULL值的个数
MIN(col)           返回指定列的最小值
MAX(col)          返回指定列的最大值
SUM(col)          返回指定列的所有值之和
GROUP_CONCAT(col)   返回由属于一组的列值连接组合而成的结果

8. 其它函数

DATE_FORMAT(date,fmt)    依照字符串fmt格式化日期date值
FORMAT(x,y)              把x格式化为以逗号隔开的数字序列,y是结果的小数位数
INET_ATON(ip)           返回IP地址的数字表示
INET_NTOA(num)         返回数字所代表的IP地址
TIME_FORMAT(time,fmt)    依照字符串fmt格式化时间time值

更多函数信息,请参考http://dev.mysql.com/doc/refman/5.6/en/functions.html

MySQL 5.6学习笔记(函数)的更多相关文章

  1. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  2. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  3. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  4. 《python基础教程(第二版)》学习笔记 函数(第6章)

    <python基础教程(第二版)>学习笔记 函数(第6章) 创建函数:def function_name(params):  block  return values 记录函数:def f ...

  5. PHP和MySQL Web开发学习笔记介绍

    前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...

  6. MySQL索引知识学习笔记

    目录 一.索引的概念 二.索引分类 三.索引用法 四 .索引架构简介 五.索引适用的情况 六.索引不适用的情况 继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本 ...

  7. MySQL学习笔记——函数

    常用函数 ALTER TABLE tb_emp ); #插入数据 INSERT INTO tb_dept() VALUE(,'市场部','负责市场工作'); # concat 连接 SELECT CO ...

  8. MySQL属性SQL_MODE学习笔记

    最近在学习<MySQL技术内幕:SQL编程>并做了笔记,本博客是一篇笔记类型博客,分享出来,方便自己以后复习,也可以帮助其他人 SQL_MODE:MySQL特有的一个属性,用途很广,可以通 ...

  9. mySql 基本语法学习笔记

     create database if not exists yang;    drop database if exists yang;     show databases;   show dat ...

随机推荐

  1. 《Unix&Linux大学教程》学习笔记二:指令常识

    1:指令的本质——调用可执行程序 在Shell输入命令时,其实就是根据名称运行相应的程序. 2:在系统中查找程序 which 指令名 type 指令名 3:时间与日历 date [-选项] 参数 ca ...

  2. PgSQL · 源码分析· pg_dump分析

    PostgreSQL本身提供了逻辑导出工具pg_dumpall和pg_dump,其中pg_dumpall导出所有的数据库,pg_dump导出单个数据库,两个工具的用法和参数不再详细介绍,本文从代码层面 ...

  3. jQuery get selected text from SELECT (or DROPDOWN) list box

    Most of the time in JavaScript we want to do following things with Select (or dropdown) list box. – ...

  4. Java Web自定义MVC框架详解 (转)

    转自:http://blog.csdn.net/jackfrued/article/details/42774459 最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架 ...

  5. shell脚本read -t 超时输入测试

    [root@server0 shellStudy]# cat timeout.sh #!/bin/bash TIMEOUT=3 #超时间隔 echo "What is your name?& ...

  6. Android 圆角输入框

        draweable文件下建立一个名字为shape的XML文件:   <shape xmlns:android="http://schemas.android.com/apk/r ...

  7. C# sqlserver 2008 连接字符串

    sqlserver 2008 的连接字符串和sql2005的几乎是一样的,但是,他们对于其中的一些配置要求不同.我试着用了很多连接字符串,最后找到了问题的原因,特别记录到这里,如果有相同问题的同学,可 ...

  8. shell脚本把一些请求量非常高的ip给拒绝掉

    需求: 根据web服务器上的访问日志,把一些请求量非常高的ip给拒绝掉!并且每隔半小时把不再发起请求或者请求量很小的ip给解封.   假设:    1. 一分钟内请求量高于100次的IP视为不正常请求 ...

  9. SSD 为什么顺序写比随机写性能更好?

    SSD以Page为单位做读写,以Block为单位做垃圾回收,Page一般有16KB大小,Block一般有几十MB大小,SSD写数据的逻辑是: 1)将该块数据所在的Page读出 2)修改该Page中该块 ...

  10. Golang 用go-sql-driver 调用MySQL存储过程时的问题排查

    今天在用go-sql-driver做MySQL driver调用MySQL的存储过程时遇到一个罕见的报错.本文对这个错误及其解做一个简单的总结. 1 问题描述 按照go中sql包提供的接口,应用层代码 ...