MySQL数据库函数的使用(字符串函数 - 数值函数 - 日期函数 - 流程函数)

字符串函数

在这里插入图片描述

案例:
-- 拼接字符串 输出:HelloWorld
SELECT CONCAT('Hello', 'World');
-- 小写  输出:
SELECT LOWER('Hello');
-- 大写  输出:hello
SELECT UPPER('Hello');
-- 左填充  输出:***01
SELECT LPAD('01', 5, '*');
-- 右填充  输出:01***
SELECT RPAD('01', 5, '*');
-- 去除两边的空格  输出:Hello World
SELECT TRIM(' Hello World ');
-- 切片(起始索引为1)  输出:Hello
SELECT SUBSTRING('Hello World', 1, 5);
-- 返回字符段的长度  输出:7
select LENGTH('abcdefg') --7

-- substring:字符串,起始下标,长度
返回提取的字符串, select SUBSTRING('abcdefg',2,2)得到结果:bc,从第2位开始截取,截取两位。
substring (str,pos):str代表字符串;pos代表从第位置开始到结尾的所有字符串;注意此语法不适用于sql server
-- substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
具体要截取第N个逗号前部分的字符,在字符串中以逗号为索引,获取不同索引位的字符。
N可以为负数,表示倒数第N个索引字符后面的字符串。(有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。)
取第一个分号前的字符串 :
SELECT SUBSTRING_INDEX('192;168;8;203',';',1);
==>得到结果为: 192

取最后分号后面的部分:
SELECT SUBSTRING_INDEX('192;168;8;203',';',-1);
==>得到结果为: 203

取第2个逗号前那部分字符串里,最后逗号后面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('192;168;8;203',';',2),';',-1);
==>得到结果为: 168

取倒数第二个逗号后面部分字符串,再去这部分里第一个都号前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('192;168;8;203',';',-2),';',1);
==> 得到结果为:8

--substr(string,start_position,[length]) 求子字符串,返回字符串
第一个参数表示要截取的字符串,第二个表示起始位置,第三个表示截取的长度,可省略。
SELECT substr('ABCDEFG',3) 输出:CDEFG
--instr(string,subString,position,ocurrence) 查找字符串的位置
第一个参数表示源字符串,第二个是要查找的字符,第三个是要查找的开始位置,第四个是查找的字符是第几个。
SELECT instr('ABCDEFG','C') 输出:3

在这里插入图片描述
在这里插入图片描述

例子:
--往后推70天
SELECT DATE_ADD(NOW(),INTERVAL  70 DAY) 
--往后推70月
SELECT DATE_ADD(NOW(),INTERVAL  70  MONTH) 
--往后推70年
SELECT DATE_ADD(NOW(),INTERVAL  70  YEAR) 

在这里插入图片描述

例子:
--如果1大于0返回ok 不大于0返回ERROR
SELECT if(1>0,'OK','ERROR') 
--如果第一个参数不null则返回ok,如果为null则返回ERROR 
SELECT IFNULL('0K','ERROR') 
--如果第一个参数不null则返回空,如果为null则返回ERROR 
SELECT IFNULL('','ERROR')  
--如果第一个参数为null则返ERROR 
SELECT IFNULL(NULL,'ERROR') 
-- 如果城市字段参数是北京则返回一线城市,如果是上海也返回一线城市,否则返回二线城市 相当于switch
SELECT CASE 城市字段 WHEN 北京 THEN 一线城市 WHEN 上海 THEN 一线城市 ELSE  二线城市 END
-- if () {}else if () {} else if () {}else {}
SELECT CASE WHEN 2>0 THEN 'ok' WHEN 1>0 THEN '0K' ELSE  'ERROR'END
CASE WHEN 80>70 THEN '优秀' END

文章参考:
哔哩哔哩动画 bilibili.com 博主:黑马程序员。
链接:https://www.imooc.com/article/details/id/295767 来源:慕课网 作者:陈晨辰_
如果想转发和使用请加上作者和网址,谢谢!
如果发现文章有问题请指出,谢谢!
后续会继续更新,阅读请关注小昵称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值