MySQL - 实用函數

各位好,有志於數據庫的熱心同好!今天,我們將要深入探索MySQL函數的奇妙世界。如果你是編程新手,別擔心——我將成為你這次旅程中的友好導遊,一步步為你解釋一切。所以,來一杯咖啡,我們開始吧!

MySQL - Useful Functions

內建MySQL函數

MySQL提供了各種內建函數,讓我們在數據庫工作中能夠更輕鬆。這些函數就像小助手一樣,可以為我們執行特定任務,節省時間並簡化我們的查詢。

字串函數

我們先從一些方便的字串函數開始。當你處理文本數據時,這些函數特別有用。

CONCAT()

CONCAT()函數用於將兩個或多個字串組合成一個單一字串。就像將文本片段粘貼在一起。

SELECT CONCAT('Hello', ' ', 'World!') AS greeting;

這將輸出:

+---------------+
| greeting      |
+---------------+
| Hello World!  |
+---------------+

在這裡,我們組合了三個字串:'Hello'、一個空格和'World!'。AS關鍵字讓我們可以為結果列命名。

LENGTH()

LENGTH()函數返回字串的長度。就像計算一個單詞中的字符數量。

SELECT LENGTH('OpenAI') AS string_length;

輸出:

+---------------+
| string_length |
+---------------+
|             6 |
+---------------+

這告訴我們'OpenAI'有6個字符。

UPPER() 和 LOWER()

這些函數將字串轉換為全大寫或全小寫字母。

SELECT UPPER('hello') AS uppercase, LOWER('WORLD') AS lowercase;

輸出:

+-----------+-----------+
| uppercase | lowercase |
+-----------+-----------+
| HELLO     | world     |
+-----------+-----------+

數值函數

現在,我們來看看一些與數字工作的函數。當你需要進行計算或四捨五入數字時,這些函數很棒。

ROUND()

ROUND()函數將一個數字四捨五入到指定位數的小數。

SELECT ROUND(3.14159, 2) AS rounded_pi;

輸出:

+------------+
| rounded_pi |
+------------+
|       3.14 |
+------------+

這將我們的數字四捨五入到兩位小數。

ABS()

ABS()函數返回數字的絕對值(正數)。

SELECT ABS(-15.7) AS absolute_value;

輸出:

+----------------+
| absolute_value |
+----------------+
|           15.7 |
+----------------+

日期和時間函數

處理日期和時間可能會有些棘手,但MySQL有一些函數可以讓這變得更容易。

NOW()

NOW()函數返回當前的日期和時間。

SELECT NOW() AS current_datetime;

輸出(會根據你運行它時的時間而變化):

+---------------------+
| current_datetime    |
+---------------------+
| 2023-06-15 14:30:00 |
+---------------------+

DATEDIFF()

DATEDIFF()函數計算兩個日期之間的天數。

SELECT DATEDIFF('2023-12-31', '2023-01-01') AS days_in_2023;

輸出:

+--------------+
| days_in_2023 |
+--------------+
|          364 |
+--------------+

這告訴我們2023年1月1日和12月31日之間有364天。

控制流程函數

控制流程函數讓我們能在查詢中添加一些邏輯。

IF()

IF()函數根據條件為TRUE或FALSE返回一個值。

SELECT IF(10 > 5, 'Yes', 'No') AS is_greater;

輸出:

+------------+
| is_greater |
+------------+
| Yes        |
+------------+

因為10確實大於5,所以函數返回'Yes'。

COALESCE()

COALESCE()函數返回列表中的第一個非NULL值。

SELECT COALESCE(NULL, NULL, 'Hello', 'World') AS first_non_null;

輸出:

+----------------+
| first_non_null |
+----------------+
| Hello          |
+----------------+

這在處理數據庫中可能的NULL值時特別有用。

实用MySQL函數總結

這裡是一個便捷的表格,總結了我們討論過的函數:

函數 描述 示例使用
CONCAT() 組合兩個或多個字串 CONCAT('Hello', ' ', 'World!')
LENGTH() 返回字串的長度 LENGTH('OpenAI')
UPPER() 將字串轉換為大寫 UPPER('hello')
LOWER() 將字串轉換為小寫 LOWER('WORLD')
ROUND() 將數字四捨五入到指定位數的小數 ROUND(3.14159, 2)
ABS() 返回數字的絕對值 ABS(-15.7)
NOW() 返回當前的日期和時間 NOW()
DATEDIFF() 計算兩個日期之間的天數 DATEDIFF('2023-12-31', '2023-01-01')
IF() 根據條件返回一個值 IF(10 > 5, 'Yes', 'No')
COALESCE() 返回列表中的第一個非NULL值 COALESCE(NULL, NULL, 'Hello', 'World')

以上就是一些最實用的MySQL函數。記住,熟能生巧,所以不要害怕在你自己的查詢中嘗試這些函數。它們就像工具箱中的工具一樣——使用得越多,你就會越熟悉。

在我多年的教學經驗中,我發現那些玩轉這些函數的學生往往會想出創意的數據庫解決方案。所以,去吧,盡情享受樂趣!也許你甚至會發現一些我們這裡沒有提到的有趣組合。

下次,我們將深入更多進階的MySQL主題。在那之前,請繼續查詢並保持好奇心!

Credits: Image by storyset