一、大小写控制函数

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. Windows下安装openssl

    安装python类库cryptography1.6提示 build\temp.win-amd64-2.7\Release\_openssl.c(429): fatal error C1083: Can ...

  2. oracle数据迁移、备份等

    exp db  或者数据泵. 或者ETL工具

  3. iOS开发ARC内存管理技术要点

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  4. mysql 操作用户权限

    使用可以对mysql数据库用户表有操作权限的用户名登陆mysqlinsert into user(Host,User,Password) values('%','name','password');如 ...

  5. OpenStack Mitaka安装

    http://egon09.blog.51cto.com/9161406/1839667 前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实 ...

  6. Win7下搭建VPN服务器教程

    前言:VPN就是一个中转器,移动网要访问外网,外网是网通的,没使用VPN的情况下我们就不能访问外网,这时候VPN就把我们的移动网自动转成能和外网连接所匹配的网,就实现了所谓的(fanqiang). 一 ...

  7. Java中引用类型变量,对象,值类型,值传递,引用传递 区别与定义

    一.Java中什么叫做引用类型变量?引用:就是按内存地址查询       比如:String s = new String();这个其实是在栈内存里分配一块内存空间为s,在堆内存里new了一个Stri ...

  8. 使用jQuery Autocomplete(自动完成)插件

    jQuery 的Autocomplete(自动完成.自动填充)插件有不少,但比较下来我感觉,还是bassistance.de 的比较强大,我们就来写一些代码感受一下. 最简单的Autocomplete ...

  9. linux下shell编写九九乘法表

    主要语法:类似    1x2       echo   $((1*2)) for 变量 in 值1 值2 值3 ;do linux命令或者语句done

  10. Svg path画线(不管是直线还是曲线)在一定情况下线条的宽度不一的情况(记录)

    在项目中涉及到svg: 使用path划线实现图表功能. 记录在实现的过程中发现的问题:path在小像素的情况下画出的线条宽度不一样.这是为什么呢? 以下是我做的猜想: 可以看图 在宽度给的很足的时候没 ...