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é)個數(shù)
SELECT LENGTH('葉綠體不忘呼吸aaaa');

②CONCAT():拼接字符串
SELECT CONCAT('Hello','世界') AS result;

③SUBSTR():截?。∕ySQL里索引是從1開始的,而不是0)
#從第4個開始截取,截取后面全部
SELECT SUBSTR('我相信光',4);

#從第1個開始截取,截取3個
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():用指定的字符左填充指定長度,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():截斷
SELECT TRUNCATE(1.699,1) AS result;

⑤MOD():取余,等價于%
SELECT MOD(10,-3) AS result;

三、日期函數(shù)

①NOW():返回當(dāng)前系統(tǒng)的日期和時間
SELECT NOW();

②CURDATE():返回當(dāng)前系統(tǒng)日期,不包含時間
SELECT CURDATE();

③CURTIME():返回當(dāng)前系統(tǒng)時間,不包括日期
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;

日,小時,分鐘,秒鐘都可以同上
⑨STR_TO_DATE():將字符按照指定的格式轉(zhuǎn)為日期
#相當(dāng)于是解析:兩個參數(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():判斷,第一個參數(shù)是條件,第二個是true的返回,第三個是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級別' WHEN `salary`>15000 THEN 'B級別' WHEN `salary`>10000 THEN 'C級別' ELSE 'D級別' END AS 等級 FROM employees;

到此這篇關(guān)于MySQL深度精講單行函數(shù)以及字符數(shù)學(xué)日期流程控制的文章就介紹到這了,更多相關(guān)MySQL 單行函數(shù) 內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信