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!

推薦閱讀: