0329 MySQL === ###### tags: `MySQL` ## CASE 語法 ### 列舉式 CASE expr when v1 then r1 when v2 then r2 .... ELSE r END ### 條件式 CASE when condition1 then r1 when condition2 then r2 .... ELSE r END ## 字串資料 ### 實數 1.DECIMAL(M,D) 2.NUMERIC(M,D) 總長度(M)=整數+小數(D) ,**預設值為10 ## 函數 ### 字串函數 CONCAT(str1,str2...) 字串連接 LENGTH(str) 字串長度 SUBSTRING (str,pos,len) 截取字串部分字元 REPEAT (str,count) 將指定字串重複,指定次數 STRCMP(expr1,expr2) 比較兩個字串大小 INSTR('String',1,3)=str LPAD(sal,10,'*')=******5000 TRIM('S'FORM'SSMITH')=MITH ### 數值函數 ROUND(X,D)=四捨五入 MOD(N,M)=求餘數 CEIL(X)=傳回不小於x的最小整數值 FLOOR(X)=傳回不大於x的最大整數值 SQRT(X)=平方根 ## 函數2 ### 日期時間函數 CURDATE() 現在日期 CURTIME() 現在時間 NOW() 現在日期與時間 ### 傳回日期時間部分資料的函數 YEAR(date) 指定日期的年份 MONTH(date)指定日期的月份 DAY(date) 指定日期的日份 EXTRACT(type FROM date) 傳回指定日期單位 WEEKDAY(date) 傳回星期索引(0,一,6,日) ### 修改/計算日期和時間的函數 DATEDIFF(expr1,expr2) 兩個日期相減 ADDDATE (date,INTERVAL expr type) 日期加法 INTERVAL 為必須值 SUBDATE (date,INTERVAL expr type) 日期減法 同上 ADDTIME (expr1,expr2) 時間加法 SUBTIME(expr1,expr2) 時間減法 ### 轉換日期時間與字串的函數 DATE(expr) 將字串轉成日期 LAST_DAY(date) 指定日期月份的最後一天 #### DATE_FORMAT(date,format) ex:date_format(curdate(),'%D,%M,%Y') 以2022/03/29為例 =29th,MARCH,2022 ## 通用函數 ### IFNULL()Function IFNULL(EXPR1,EXPR2) 如果 EXPR1是NULL則顯示EXPR2 若EXPR1不是NULL 則顯示EXPR1 EXPR1可指定參數 顯示EXPR2的形式 ### NULLIF()Function NULLIF(expr1,expr2) If expr1=expr2 then return null else return expr1 ## 彙總函數 ### COUNT(STAR) ## Notes 補充: ![](https://i.imgur.com/DlqFeEw.png) ![](https://i.imgur.com/Hq4KZwX.png) ## Join ![](https://i.imgur.com/pPY8oNf.png) ![](https://i.imgur.com/8r6r7e7.png) ![](https://i.imgur.com/FH2k3lq.png)