MySQL實(shí)例精講單行函數(shù)以及字符數(shù)學(xué)日期流程控制
一、字符函數(shù)
1、大小寫控制函數(shù)
①UPPER()
:轉(zhuǎn)換成大寫
SELECT UPPER('Hello');
②LOWER()
:轉(zhuǎn)換成小寫
SELECT LOWER('Hello');
2、字符控制函數(shù)
①LENGTH()
:獲取參數(shù)值的字節(jié)個(gè)數(shù)
SELECT LENGTH('葉綠體不忘呼吸aaaa');
②CONCAT()
:拼接字符串
SELECT CONCAT('Hello','世界') AS result;
③SUBSTR()
:截取(MySQL里索引是從1開始的,而不是0)
#從第4個(gè)開始截取,截取后面全部 SELECT SUBSTR('我相信光',4);
#從第1個(gè)開始截取,截取3個(gè) SELECT SUBSTR('我相信光',1,3);
④INSTR()
:返回子串在主串中第一次出現(xiàn)的索引,如果不存在,則返回0
SELECT INSTR('國足10月13日客戰(zhàn)沙特','沙特') AS result;
⑤TRIM()
:去除字符串前后某字符
SELECT TRIM('a' FROM 'aaaaa葉aa綠體aaaaa') AS result;
#去空格 SELECT TRIM(' 葉aa綠體a ') AS result;
⑥LPAD()
:用指定的字符左填充指定長(zhǎng)度,RPAD()
則是右填充
SELECT LPAD('葉綠體',9,'a') AS result;
⑦REPLACE()
:替換
SELECT REPLACE('a葉aaa綠體aaaa','a','B') AS result;
二、數(shù)學(xué)函數(shù)
①ROUND()
:四舍五入
#默認(rèn)保留一位小數(shù) SELECT ROUND(1.62) AS result;
#保留兩位小數(shù) SELECT ROUND(1.627,2) AS result;
②CEIL()
:向上取整,返回大于等于該數(shù)的最小整數(shù)
SELECT CEIL(1.002) AS result;
③FLOOR()
:向下取整,返回小于等于該數(shù)的最大整數(shù)
SELECT FLOOR(1.002) AS result;
④TRUNCATE()
:截?cái)?/p>
SELECT TRUNCATE(1.699,1) AS result;
⑤MOD()
:取余,等價(jià)于%
SELECT MOD(10,-3) AS result;
三、日期函數(shù)
①NOW():返回當(dāng)前系統(tǒng)的日期和時(shí)間
SELECT NOW();
②CURDATE():返回當(dāng)前系統(tǒng)日期,不包含時(shí)間
SELECT CURDATE();
③CURTIME():返回當(dāng)前系統(tǒng)時(shí)間,不包括日期
SELECT CURTIME();
⑦YREAR()
:獲取指定日期字段的年
SELECT YEAR(NOW());
SELECT YEAR('2021-09-30') AS result;
⑧MONTH()
:獲取指定日期字段的月,MONTHNAME()
則可以返回月份英文
SELECT MONTH('2021-09-30') AS result;
SELECT MONTHNAME('2021-09-30') AS result;
日,小時(shí),分鐘,秒鐘都可以同上
⑨STR_TO_DATE()
:將字符按照指定的格式轉(zhuǎn)為日期
#相當(dāng)于是解析:兩個(gè)參數(shù)格式要匹配 SELECT STR_TO_DATE('9-30 2021','%m-%d %Y') AS result;
⑩DATE_FORMAT()
:將日期轉(zhuǎn)換成字符
#相當(dāng)于是格式化 SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS result;
四、其他函數(shù)
#查看版本 SELECT VERSION(); #查看數(shù)據(jù)庫 SELECT DATABASE(); #查看用戶 SELECT USER();
五、流程控制函數(shù)
①IF()
:判斷,第一個(gè)參數(shù)是條件,第二個(gè)是true的返回,第三個(gè)是false的返回
SELECT IF(10>5,'大','小') AS result;
②CASE()
使用一:類似于Java中switch
CASE 要判斷的 WHEN 常量1 THEN 語句1;或者要顯示的值1 ... ELSE 語句;或者要顯示的值 END
示例
#示例為要顯示的值,不加‘;' SELECT `last_name`,`salary`,`department_id`, CASE `department_id` WHEN 100 THEN `salary`*(1+0.8) WHEN 90 THEN `salary`*(1+0.6) WHEN 80 THEN `salary`*(1+0.4) WHEN 70 THEN `salary`*(1+0.2) ELSE `salary` END AS 最終工資 FROM employees;
③CASE()
使用一:類似于Java中多重if
CASE WHEN 條件1 THEN SELECT 語句1;或者要顯示的值1 ... ELSE 語句;或者要顯示的值 END
示例
#示例為要顯示的值,不加‘;' SELECT `last_name`,`salary`, CASE WHEN `salary`>20000 THEN 'A級(jí)別' WHEN `salary`>15000 THEN 'B級(jí)別' WHEN `salary`>10000 THEN 'C級(jí)別' ELSE 'D級(jí)別' END AS 等級(jí) FROM employees;
到此這篇關(guān)于MySQL深度精講單行函數(shù)以及字符數(shù)學(xué)日期流程控制的文章就介紹到這了,更多相關(guān)MySQL 單行函數(shù) 內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。