一、大小写控制函数

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. python用Tesseract读取图片中的中文,出现乱码

    到http://download.csdn.net/detail/wanghui2008123/7621567下载中文简体包 然后找到tessdata目录,把eng.traineddata替换为chi ...

  2. 优先队列 :Priority Queue

    PriorityQueue是从JDK1.5开始提供的新的数据结构接口,它是一种基于优先级堆的极大优先级队列.优先级队列是不同于先进先出队列的另一种队列. 每次从队列中取出的是具有最高优先权的元素.如果 ...

  3. jQuery获取字符串中两个字符之间的字符

    //获取@和.之间的字符 var str1 = "laxe@ll.com"; var str2 = str1.substring(str1.indexOf('@')+1,str1. ...

  4. web安全之sql注入布尔注入

    条件: 当一个页面,存在注入,没显示位,没有数据库出错信息,只能通过页面返回正常不正常进行判断进行sql注入. 了解的函数 exists()                    用于检查  子查询是 ...

  5. 工作记事 unknownHost

    使用xutils框架   下带图片(文件)事解析时在urlconnection  执行connect操作的时候抛出 UnknownHostException 而浏览器中能够正常访问该地址.这是由于该u ...

  6. rails使用bootstrap3-wysiwyg可视化编辑器并实现自定义图片上传插入功能

    之前在rails开发中使用了ckeditor作为可视化编辑器,不过感觉ckeditor过于庞大,有很多不需要的功能,而且图片上传功能不好控制不同用户可以互相删除图片,感觉很不好.于是考虑更改可视化编辑 ...

  7. Postfix邮件服务器搭建及配置

    一.邮件服务器(Mail Server)的传输协议 1.简单邮件传输协议(SMTP):Simple Mail Transger Protocol 2.扩展的简单邮件传输协议(ESMTP):Extend ...

  8. Combination Sum II

    public class Solution { public List<List<Integer>> combinationSum2(int[] candidates, int ...

  9. Thread系列之Thread.Sleep(0)

    线程这一概念,可以理解成进程中的一个小单元.这个单元是一个独立的执行单元,但是与进程中的其他线程共享进程中的内存单元. 由于Cpu资源是有限的,所以进程中的多个线程要抢占Cpu,这也导致进程中的多个线 ...

  10. 【转】怎么让VS2015编写的程序在XP中顺利运行

    1. 概述 默认配置下VS2015编写的应用程序只能在Win8/Win10上运行.但幸好还保留了生成XP程序的设置项.XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们.另外X ...