MySQL實例精講單行函數以及字符數學日期流程控制
一、字符函數
1、大小寫控制函數
①UPPER()
:轉換成大寫
SELECT UPPER('Hello');
②LOWER()
:轉換成小寫
SELECT LOWER('Hello');
2、字符控制函數
①LENGTH()
:獲取參數值的字節個數
SELECT LENGTH('葉綠體不忘呼吸aaaa');
②CONCAT()
:拼接字符串
SELECT CONCAT('Hello','世界') AS result;
③SUBSTR()
:截取(MySQL裡索引是從1開始的,而不是0)
#從第4個開始截取,截取後面全部 SELECT SUBSTR('我相信光',4);
#從第1個開始截取,截取3個 SELECT SUBSTR('我相信光',1,3);
④INSTR()
:返回子串在主串中第一次出現的索引,如果不存在,則返回0
SELECT INSTR('國足10月13日客戰沙特','沙特') 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;
二、數學函數
①ROUND()
:四舍五入
#默認保留一位小數 SELECT ROUND(1.62) AS result;
#保留兩位小數 SELECT ROUND(1.627,2) AS result;
②CEIL()
:向上取整,返回大於等於該數的最小整數
SELECT CEIL(1.002) AS result;
③FLOOR()
:向下取整,返回小於等於該數的最大整數
SELECT FLOOR(1.002) AS result;
④TRUNCATE()
:截斷
SELECT TRUNCATE(1.699,1) AS result;
⑤MOD()
:取餘,等價於%
SELECT MOD(10,-3) AS result;
三、日期函數
①NOW():返回當前系統的日期和時間
SELECT NOW();
②CURDATE():返回當前系統日期,不包含時間
SELECT CURDATE();
③CURTIME():返回當前系統時間,不包括日期
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()
:將字符按照指定的格式轉為日期
#相當於是解析:兩個參數格式要匹配 SELECT STR_TO_DATE('9-30 2021','%m-%d %Y') AS result;
⑩DATE_FORMAT()
:將日期轉換成字符
#相當於是格式化 SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS result;
四、其他函數
#查看版本 SELECT VERSION(); #查看數據庫 SELECT DATABASE(); #查看用戶 SELECT USER();
五、流程控制函數
①IF()
:判斷,第一個參數是條件,第二個是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;
到此這篇關於MySQL深度精講單行函數以及字符數學日期流程控制的文章就介紹到這瞭,更多相關MySQL 單行函數 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!