一、大小写控制函数

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. JDBC修改表数据

    修改数据时用到update语句,使用这个语句时也要有条件的,指定修改某一行的数据,没有条件判断,则修改全部. package qddx.JDBC; import java.sql.*; public ...

  2. bootstrap-14

    基础导航条: 使用方法:1. 首先在制作导航的列表(<ul class="nav">)基础上添加类名"navbar-nav" 2.在列表外部添加一个 ...

  3. Ubuntu下配置Pyspider环境

    Ubuntu 14.04.4 LTS 1.ubuntu 系统自带Python 所以不用安装Python 注:安装前先更新下软件源 命令 :sudo apt-get update 2.开始安装pip 命 ...

  4. radio值未出现JQ获取值问题

    $('input:radio[name="modelExtend.manageType"]:checked').val(); 选中的获取的值不是空或者null而是on

  5. iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)

    功能实现:A跳到B并打开B中指定页面 步骤: 1.首先创建两个项目(项目A,项目B),在项目B中的info.plist文件中添加URL Types,如下图所示:其中URL idenifier是项目B的 ...

  6. cocos2d-x 帧循环不严谨造成场景切换卡顿

    最近在用cocos2d-x做引导界面,2dx版本是2.2.3,场景切换加上了效果,所有资源都已经使用texturepacker打包预加载,但是在实际运行调试中,场景切换相当卡顿. 各种纠结后,无意中将 ...

  7. 移动端 touch 事件的originalEvent

    对于移动端的触摸事件,我们通过touchstart.touchmove.touchend实现,PC端一般使用mousedown.mousemove.mouseup实现. 我们获取事件坐标,原生js获取 ...

  8. [SimHash] find the percentage of similarity between two given data

    SimHash algorithm, introduced by Charikarand is patented by Google. Simhash 5 steps: Tokenize, Hash, ...

  9. MongoDB学习笔记八:复制

    [主从复制]最基本的复制方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址.运行mongod --master启动主服务器.运行mongod --slave --source ma ...

  10. connections

    recv(), recvfrom() http://lxr.free-electrons.com/source/net/socket.c http://grepcode.com/file/reposi ...