一、大小写控制函数

LOWER(str)    将str的值全部置为小写字母

  1. select LOWER('ABC');
  2. --结果:
  3. LOWER('ABC')
  4. abc
UPPER(str)    将str的值全部置为大写字母
  1. select UPPER('abc');
  2. --结果:
  3. UPPER('abc')
  4. ABC
二、字符控制函数
CONCAT(str1,str2,...)    将str1、str2等字符串连接起来
  1. select CONCAT('a','b','c');
  2. --结果:
  3. CONCAT('a','b','c')
  4. abc
SUBSTR(str,pos,len)    从str的第pos位(范围:1~str.length)开始,截取长度为len的字符串
  1. select SUBSTR('abc',1,2);
  2. --结果:
  3. SUBSTR('abc',1,2)
  4. ab
LENGTH(str)    获取str的长度
  1. select LENGTH('abc');
  2. --结果:
  3. LENGTH('abc')
  4. 3
INSTR(str,substr)    获取substr在str中的位置
  1. select INSTR('abc','a');
  2. --结果:
  3. INSTR('abc','a')
  4. 1
LPAD(str,len,padstr)/RPAD(str,len,padstr)    首先判断str是否达到了len的长度,如果没有达到,那么在str的左侧/右侧对应添加padstr来使结果达到len的长度
注:padstr常用的值有:'*'和' '(空格)
  1. select name from person;
  2. --结果:
  3. name
  4. xiaoP
  5. xiaoPP
  6. xiao_p
  7. --
  8. select LPAD(name,10,'*')from person;
  9. --结果:
  10. LPAD(name,10,'*')
  11. *****xiaoP
  12. ****xiaoPP
  13. ****xiao_p
TRIM(remstr FROM str)    从str中删除开头和结尾的remstr(不会处理字符串中间含有的remstr)
TRIM(str)    从str中删除开头和结尾的空格(不会处理字符串中间含有的空格)
LTRIM(str)    从str中删除左侧开头的空格
RTRIM(str)    从str中删除右侧结尾的空格
  1. select TRIM('a' FROM 'abca');
  2. --结果:
  3. TRIM('a' FROM 'abca')
  4. bc
  5. --
  6. select TRIM('a' FROM 'abab');
  7. --结果:
  8. TRIM('a' FROM 'abab')
  9. bab
  10. --
  11. select LTRIM(' abc ');
  12. --结果:
  13. LTRIM(' abc ')
  14. abc --abc后面是有空格的
  15. --
  16. select RTRIM(' abc ');
  17. --结果:
  18. RTRIM(' abc ')
  19. abc
REPLACE(str,from_str,to_str)    将str中的from_str替换为to_str(会替换掉所有符合from_str的字符串)
  1. SELECT REPLACE('abcbc','b','m');
  2. --结果:
  3. REPLACE('abcbc','b','m')
  4. amcmc
三、数字函数
ROUND(X,D)    根据D指定的(小数)位数对X进行四舍五入(注意,D可以为负数,为负数的时候即为对个位以上四舍五入)
ROUND(X)    对X进行取整,根据十分位进行四舍五入,精确到个位
  1. SELECT ROUND(2.3456,3);
  2. --结果:
  3. ROUND(2.3456,3)
  4. 2.346
TRUNCATE(X,D)    根据D指定的(小数)位数来对X进行截断(不进行四舍五入)(注意,D可以为负数,为负数的时候即为对个位以上截断)
  1. SELECT TRUNCATE(10.88888,2);
  2. --结果:
  3. TRUNCATE(10.88888,2)
  4. 10.88
MOD(N,M)    对N/M求余
  1. select MOD(5.7,2.8);
  2. --结果:
  3. MOD(5.7,2.8)
  4. 0.1
四、日期函数
SYSDATE()或者NOW()   返回当前系统时间,格式为YYYY-MM-DD hh-mm-ss
  1. select SYSDATE();
  2. --结果:
  3. SYSDATE()
  4. 2015-06-2021:17:25
DAYOFMONTH(date)    返回指定时间的月份
DAYOFWEEK(date)    返回指定时间是星期几(注意,这个和中国的习惯有不符,此返回值如果是1,则代表星期日)
DAYOFYEAR(date)    返回指定时间是哪一年
以上函数中,date可以用NOW()或者其他的date格式的字段
 
日期可以和数字(作为天数)做加减;日期和日期之间只可以做减法;数字除以24可以作为天数和日期相加减;
注:经实测,日期只要是和数字进行了交互,格式就会发生变化(由YYYY-MM-DD hh-mm-ss变为YYYYMMDDhhmmss),然后再进行运算
 
DAYNAME(date)    返回date日期是星期几
LAST_DAY(date)    返回date日期当月的最后一天
 
 
五、转换函数
TO_DAYS(date)    将date格式的日期转换为天数('0000-01-01'转换结果为1,以此类推)
TO_SECONDS(expr)    将表达式expr转换成秒('0000-01-01'转换结果为86400,为一天的秒数)
DATE_FORMAT(date,format)    将日期转换成字符串(类似oracle中的to_char())
 
STR_TO_DATE(str,format)    将字符串转换成日期(类似oracle中的to_date())
  1. SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %T'),STR_TO_DATE(NOW(),'%Y-%m-%d %T');
  2. --结果:
  3. DATE_FORMAT(NOW(),'%Y-%m-%d %T') STR_TO_DATE(NOW(),'%Y-%m-%d %T')
  4. 2015-06-2113:52:06               2015-06-2113:52:06
UNIX_TIMESTAMP([datetime])    将datetime格式的日期时间转换为unix时间戳(如果参数为空,则转换当前系统时间)
 
六、通用函数
 
IFNULL(expr1,expr2)    判断expr1是否为null,如果为null,则用expr2来代替null(类似oracle的NVL()函数)
  1. SELECT
  2. id,
  3. NAME,
  4. dept_id,
  5. FORMAT(
  6. salary *12*(IFNULL(commission_pct,1)),
  7. 0
  8. )
  9. FROM
  10. person
  11. WHERE
  12. dept_id IN (101,106,109);
  13. --结果:
  14. id name dept_id      FORMAT    (salary*12*(IFNULL(commission_pct,1)),0)
  15. 0001    LiLei        101       13,200
  16. 0002    HanMeimei    106       27,600
  17. 0003    Lucy         109       36,000
IF(expr1,expr2,expr3)    判断expr1是否为真(是否不为null),如果为真,则使用expr2替代expr1;如果为假,则使用expr3替代expr1(类似oracle的NVL2()函数)
  1. SELECT
  2. IF (
  3. dept_id,
  4. '有部门','没有部门'
  5. ) dept
  6. FROM
  7. person;
  8. --结果:
  9. dept
  10. 有部门
  11. 有部门
  12. 有部门
  13. 没有部门
NULLIF(expr1,expr2)    判断expr1和expr2是否相等,如果相等则返回null,如果不相等则返回expr1
  1. select NULLIF(1,1),NULLIF(1,2);
  2. --结果:
  3. NULLIF(1,1)   NULLIF(1,2)
  4. (NULL)        1
COALESCE(value,...)    判断value的值是否为null,如果不为null,则返回value;如果为null,则判断下一个value是否为null……直至出现不为null的value并返回或者返回最后一个为null的value。
  1. SELECT
  2. COALESCE (
  3. dept_id,
  4. commission_pct,
  5. NAME
  6. )
  7. FROM
  8. person
  9. WHERE
  10. NAME ='Lily';
  11. --结果:
  12. COALESCE (dept_id,commission_pct,name)
  13. Lily
CASE WHEN THEN ELSE END    条件函数
CASE 指定字段 WHEN 需要符合的条件1 THEN 表达式1 WHEN 需要符合的条件2 THEN 表达式2 ... ELSE 其他情况的表达式 END
  1. SELECT
  2. id,
  3. NAME,
  4. dept_id,
  5. CASE dept_id
  6. WHEN 101 THEN
  7. salary *1.1
  8. WHEN 106 THEN
  9. salary *1.2
  10. ELSE
  11. salary *1.3
  12. END salary
  13. FROM
  14. person
  15. WHERE
  16. dept_id IN (101,106,109);
  17. --结果:
  18. id       NAME       dept_id     salary
  19. 0001     LiLei      101         1100
  20. 0002     HanMeimei  106         2400
  21. 0003     Lucy       109         3900
 
 

mysql常用单行函数的更多相关文章

  1. [转]MySQL常用Json函数和MySQL常用字符串函数

    MySQL常用Json函数:https://www.cnblogs.com/waterystone/p/5626098.html MySQL常用字符串函数:https://www.cnblogs.co ...

  2. sql常用单行函数

    学到数据库了,小记一下的喽~~~>>>>常用的单行函数 select * from employees 查询所有 select first_name,lower(first_n ...

  3. MySQL之MySQL常用的函数方法

    MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...

  4. MYSQL常用操作函数的封装

    1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $usern ...

  5. 【MySQL】MySQL之MySQL常用的函数方法

    MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...

  6. Oracle常用单行函数(原创)

    前言: 想把单行函数进行一个比较全面的总结,并分享给有需要的人,有不明之处还请多多指教. SQL函数:Oracle的内置函数,包括了单行函数和多行函数,本文重点讲解单行函数.单行函数又可以分为许多类, ...

  7. MySql常用日期函数(转载)

    /*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date ...

  8. MySQL常用Json函数

    官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create ...

  9. MySQL常用字符串函数

    字符串函数 是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用: 1.LOWER(column|str):将字符串参数值转换为全小写字母后返回 mysql> sel ...

随机推荐

  1. myeclipse10中文注释乱码问题

    将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同. 总结网上的建议和自己的体 ...

  2. PHP Web实时消息后台服务器推送技术---GoEasy

    越来越多的项目需要用到实时消息的推送与接收,怎样用php实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...

  3. (整理) Json语法规则

    { "staff":[ {"name":"haha1", "age":20}, {"name":&q ...

  4. apply 伴生对象 单例对象

    apply(): 当类或者对象有一个主要用途时,apply方法提供了很好语法机制 scala> class Foo {} defined class Foo scala> object F ...

  5. linux5个搜索命令

    概要 linux中主要有5个文件查找命令:find.locate.whereis.which.type.find最为强大,但耗时较长.locate可看做find的精简版,但是它的速度非常快.where ...

  6. Android学习

    http://www.jikexueyuan.com/path/android 一.概述: 03年10月建立android科技,05年8月被google收购,07年11月成立开放手持设备联盟(Open ...

  7. Kali Linux additional tools setup

    The steps are pretty straight forward. The only tool that might cause some confusion is SMBexec. Thi ...

  8. 流编辑器-sed

    sed 参数: 1.'s' 替换 sed 's/search-word/replace-word/' file-name 替换file-name文件中的search-word为replace-word ...

  9. Codis集群

    一.简介 Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Re ...

  10. VS中Debug和Realease、及静态库和动态库的区别整理(转)

    原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不 ...