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():截?。∕ySQL里索引是從1開始的,而不是0)
#從第4個(gè)開始截取,截取后面全部
SELECT SUBSTR('我相信光',4);

#從第1個(gè)開始截取,截取3個(gè)
SELECT SUBSTR('我相信光',1,3);

④INSTR():返回子串在主串中第一次出現(xiàn)的索引,如果不存在,則返回0
SELECT INSTR('國(guó)足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ù)庫(kù) 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 語(yǔ)句1;或者要顯示的值1 ... ELSE 語(yǔ)句;或者要顯示的值 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 語(yǔ)句1;或者要顯示的值1 ... ELSE 語(yǔ)句;或者要顯示的值 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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL過濾重復(fù)數(shù)據(jù)的兩種方法示例
數(shù)據(jù)庫(kù)生成環(huán)境中經(jīng)常會(huì)遇到表中有重復(fù)的數(shù)據(jù),或者進(jìn)行關(guān)聯(lián)過程中產(chǎn)生重復(fù)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL過濾重復(fù)數(shù)據(jù)的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
MySQL系列教程小白數(shù)據(jù)庫(kù)基礎(chǔ)
這篇文章主要為大家介紹了MySQL系列中的數(shù)據(jù)庫(kù)基礎(chǔ),非常適合數(shù)據(jù)庫(kù)小白的入門基礎(chǔ)篇,詳細(xì)的講解了數(shù)據(jù)庫(kù)的基本概念以及基礎(chǔ)命令及操作示例,有需要的朋友可以借鑒參考下2021-10-10

