• MySQL 常用函数


    字符串函数

     

    -- CONCAT(S1,S2,…Sn)函数:把传入的参数连接成为一个字符串。任何字符串与NULL进行连接的结果都将是NULL。
    select concat('aaa', 'bbb', 'ccc') ,concat('aaa',null); -- aaabbbccc,null
    
    -- INSERT(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instr。
    select INSERT('beijing2008you',12,3, 'me');-- beijing2008me
    
    -- LOWER(str)和UPPER(str)函数:把字符串转换成小写或大写。
    select LOWER('BEIJING2008'), UPPER('beijing2008');-- beijing2008,BEIJING2008
    
    -- LEFT(str,x)和RIGHT(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符。如果第二个参数是NULL,那么将不返回任何字符串。
    SELECT LEFT('beijing2008',7),LEFT('beijing',null),RIGHT('beijing2008',4);-- beijing,null,2008
    
    -- LPAD(str,n,pad)和RPAD(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度。
    select lpad('2008',20,'beijing'),rpad('beijing',20,'2008');-- beijingbeijingbe2008,beijing2008200820082
    
    -- LTRIM(str)和RTRIM(str)函数:去掉字符串str左侧和右侧空格。
    select ltrim('  beijing'),rtrim('beijing  ');-- beijing,beijing
    
    -- REPEAT(str,x)函数:返回str重复x次的结果。
    select repeat('mysql ',3);-- mysql mysql mysql 
    
    -- REPLACE(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a。
    select replace('beijing_2010','_2010','2008');-- beijing2008
    
    -- STRCMP(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。
    select strcmp('a','b'),strcmp('b','b'),strcmp('c','b');-- -1,0,1
    
    -- TRIM(str)函数:去掉目标字符串的开头和结尾的空格。
    select trim(' $ beijing2008 $ ');-- $ beijing2008 $
    
    -- SUBSTRING(str,x,y)函数:返回从字符串str中的第x位置起y个字符长度的字串。
    select substring('beijing2008',8,4),substring('beijing2008',1,7);-- 2008,beijing

    数值函数

    -- ABS(x)函数:返回x的绝对值。
    select ABS(-0.8) ,ABS(0.8); -- 0.8,0.8
    
    -- CEIL(x)函数:返回大于x的最小整数。
    select CEIL(-0.8),CEIL(0.8);-- 0,1
    
    -- FLOOR(x)函数:返回小于x的最大整数,和CEIL的用法刚好相反。
    select FLOOR(-0.8), FLOOR(0.8);-- -1,0
    
    -- MOD(x,y)函数:返回x/y的模。
    select MOD(15,10),MOD(1,11),MOD(NULL,10);-- 5,1,null
    
    -- RAND()函数:返回0~1内的随机值。
    select RAND(),RAND();-- 0.9192258947707954,0.7775240370794423
    -- 利用此函数可以取任意指定范围内的随机数,比如需要产生 0~100 内的任意随机整数
    select ceil(100*rand()),ceil(100*rand());-- 20,3
    
    -- ROUND(x,y)函数:返回参数x的四舍五入的有y位小数的值。
    select ROUND(11.11),ROUND(11.11,2),ROUND(11,2);-- 11,11.11,11
    
    -- TRUNCATE(x,y)函数:返回数字x截断为y位小数的结果。
    select ROUND(1.235,2),TRUNCATE(1.235,2);-- 1.24,1.23

    日期和时间函数

     

     

    -- CURDATE()函数:返回当前日期,只包含年月日。
    select CURDATE(); -- 2021-01-06
    
    -- CURTIME()函数:返回当前时间,只包含时分秒。
    select CURTIME(); -- 10:57:35
    
    -- NOW()函数:返回当前的日期和时间,年月日时分秒全都包含。
    select NOW(); -- 2021-01-06 10:58:14
    
    -- UNIX_TIMESTAMP(date)函数:返回日期date的UNIX时间戳。
    select UNIX_TIMESTAMP(now()); -- 1609901920
    
    -- FROM_UNIXTIME(unixtime)函数:返回 UNIXTIME 时间戳的日期值,和UNIX_TIMESTAMP(date)互为逆操作。
    select FROM_UNIXTIME(1609901920);-- 2021-01-06 10:58:40
    
    -- WEEK(DATE)和 YEAR(DATE)函数:前者返回所给的日期是一年中的第几周,后者返回所给的日期是哪一年。
    select WEEK(now()),YEAR(now());-- 1,2021
    -- HOUR(time)和MINUTE(time)函数:前者返回所给时间的小时,后者返回所给时间的分钟。
    select HOUR(CURTIME()),MINUTE(CURTIME());-- 11,0
    
    -- MONTHNAME(date)函数:返回date的英文月份名称。
    select MONTHNAME(now());-- January
    
    -- DATE_FORMAT(date,fmt)函数:按字符串 fmt 格式化日期 date 值,此函数能够按指定的格式显示日期,可以用到的格式符如表所示。
    select DATE_FORMAT(now(),'%M,%D,%Y');-- January,6th,2021
    select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s');-- 2021-01-06 11:05:14
    
    -- DATE_ADD(date,INTERVAL expr type)函数:返回与所给日期date相差 INTERVAL时间段的日期。
    -- 其中INTERVAL是间隔类型关键字,expr是一个表达式,这个表达式对应后面的类型, type是间隔类型,MySQL提供了13种间隔类型,如表所示。
    select now() current,date_add(now(),INTERVAL 31 day) after31days,date_add(now(),INTERVAL '1_2' year_month) after_oneyear_twomonth;-- 2021-01-06 11:06:17,2021-02-06 11:06:17,2022-03-06 11:06:17
    select now() current,date_add(now(),INTERVAL -31 day) after31days, date_add(now(),INTERVAL '-1_-2' year_month) after_oneyear_twomonth;-- 2021-01-06 11:07:57,2020-12-06 11:07:57,2019-11-06 11:07:57
    
    -- DATEDIFF(date1,date2)函数:用来计算两个日期之间相差的天数。
    select DATEDIFF('2021-01-10',now());-- 4

    流程函数

    -- IF(value,t,f)函数 
    select if(salary>2000, 'high', 'low') from salary;
    
    -- IFNULL(value1,value2)函数:这个函数一般用来替换 NULL 值,我们知道 NULL 值是不能参与数值运算的,下面这个语句就是把NULL值用0来替换。
    select ifnull(salary,0) from salary;
    
    -- CASE WHEN [value1] THEN[result1]…ELSE[default]END函数
    select case when salary<=2000 then 'low' else 'high' end from salary;

    其他常用函数

    -- DATABASE()函数:返回当前数据库名。
    select DATABASE();-- demo
    
    -- VERSION()函数:返回当前数据库版本。
    select VERSION();-- 5.7.24-log
    
    
    -- USER()函数:返回当前登录用户名。
    select USER();-- root@localhost
    
    -- INET_ATON(IP)函数:返回IP地址的网络字节序表示。
    select INET_ATON('192.168.1.1');-- 3232235777
    
    -- INET_NTOA(num)函数:返回网络字节序代表的IP地址。
    select INET_NTOA(3232235777); -- 192.168.1.1
    -- select * from t where inet_aton(ip)>=inet_aton('192.168.1.3') and inet_aton(ip)<=inet_aton('192.168.1.20');
    
    -- PASSWORD(str)函数:返回字符串str的加密版本,一个41位长的字符串。
    select PASSWORD('123456');-- *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
    
    -- MD5(str)函数:返回字符串str的MD5值,常用来对应用中的数据进行加密。
    select MD5('123456');-- e10adc3949ba59abbe56e057f20f883e
  • 相关阅读:
    驰骋工作流引擎-系统变量的引用
    驰骋工作流引擎-表单样本展示
    驰骋工作流引擎CCFLOW下载代码
    初识CSS
    初识HTML标签
    初识JDBC
    通过锁对象解决哲学家就餐问题
    MySQL基本用法
    LRU算法实现,HashMap与LinkedHashMap源码的部分总结
    Java简易实现记事本的打开与保存
  • 原文地址:https://www.cnblogs.com/ooo0/p/14237207.html
Copyright © 2020-2023  润新知