0%

[資料庫] Lesson 4 SQL 常見函式

聚合函式

函式 用途
AVG 計算欄位的平均值
COUNT 計算查詢結果的筆數
MAX 取出欄位中的最大值
MIN 取出欄位中的最小值
SUM 計算欄位的總計

字串函式

函式 用途
CHAR_LENGTH 取得字串的長度(以多字元字集方式)
LENGTH 取得字串的長度(bytes)
CONCAT 字串合併
GROUP_CONCAT 將GROUP BY結果中的某個欄位內容串成一個字串
LEFT 取出由左邊開始的指定長度的字串
RIGHT 取出由右邊開始的指定長度的字串
SUBSTRING 取出指定位置開始的指定長度的字串

日期/時間函式

函式 用途
CURRENT_DATE 取出當前的系統日期
CURRENT_TIME 取出當前的系統時間
NOW 取出當前的系統日期及時間
DATEDIFF 計算兩個日期間差距的天數
TIMESTAMPDIFF 計算兩個日期時間差距的單位,可選擇要返回的數值是時間還是日期
YEAR 取出日期時間格的資料中年的部份
MONTH 取出日期時間格的資料中月的部份
DATE 取出日期時間格的資料中日期的部份
HOUR 取出日期時間格的資料中小時的部份
MINUTE 取出日期時間格的資料中分鐘的部份
SECOND 取出日期時間格的資料中秒的部份

流程控制函式

函式 用途
CASE 類似switch case的用法
IF 和if else一樣的用法
IFNULL 判斷第一個參數是否為null,決定返回的值

CASE
case運算式有兩種用法分別是和switch..case一樣的根據一個結果來決定回傳值;另一個用法則是和if..elseif…else一樣,可以做多個條件的判斷並回傳不同的結果

  • 用法一
1
2
3
4
5
SELECT CASE `gender`
WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '多元性別'
END
  • 用法二
1
2
3
4
5
SELECT CASE 
WHEN `salary` <= 30000 THEN '年終一個月'
WHEN `salary` > 30000 AND `salary` <=45000 THEN '年終兩個月'
WHEN `salary > 45000 THEN '年終三個月'
END

IF

1
SELECT IF(`gender`=1,'男','女')

IFNULL

1
SELECT IFNULL(`score`,0)