MySQL③函式、約束一覽
阿新 • • 發佈:2022-03-13
函式
MySQL 的函式: 字串函式、數值函式、日期函式、流程函式。
字串函式
功能 | |
---|---|
CONCAT(S1, S2, ... Sn) | 字串拼接 |
LOWER(str) | 字串轉小寫 |
UPPER(str) | 字串轉大寫 |
LPAD(str, n, pad) | 左填充,用字串 pad 對 str 的左邊填充 n 個字串長度 |
RPAD(str, n, pad) | 右填充,用字串 pad 對str 的右邊填充 n個字串長度 |
TRIM(str) | 去掉字串頭尾的空格 |
SUBSTRING(str, start, len) | 子串,從 start 開始的 len 個長度 |
數值函式
功能 | |
---|---|
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x, y) | x mod y |
RAND() | 返回0~1內的隨機數 |
ROUND(x, y) | 四捨五入 x 的值,保留 y 位小數 |
日期函式
功能 | |
---|---|
CURDATE() | 返回當前日期 |
CURTIME() | 返回當前時間 |
NOW() | 返回當前日期和時間 |
YEAR(date) | 獲取指定date的年份 |
MONTH(date) | 獲取指定date的月份 |
DAY(date) | 獲取指定date的日期 |
DATE_ADD(date, INTERVAL exprtype) | 返回一個日期/時間值加上一個時間間隔expr後的時間值 |
DATEDIFF(date1,date2) | 返回起始時間date1 和 結束時間date2之間的天數 |
流程函式
功能 | |
---|---|
IF(value , t , f) | 如果value為true,則返回t,否則返回 f |
IFNULL(value1 , value2) | 如果value1不為空,返回value1,否則返回value2 |
CASE WHEN [ val1 ] THEN [res1] ...ELSE [ default ] END | 如果val1為true,返回res1,... 否則返回default預設值 |
CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END | 如果expr的值等於val1,返回 res1,... 否則返回default預設值 |
約束
描述 | 關鍵字 | |
---|---|---|
非空約束 | 限制該欄位的資料不能為null | NOT NULL |
唯一約束 | 保證該欄位的所有資料都是唯一、不重複的 | UNIQUE |
主鍵約束 | 主鍵是一行資料的唯一標識,要求非空且唯一 | PRIMARY KEY |
預設約束 | 儲存資料時,如果未指定該欄位的值,則採用預設值 | DEFAULT |
檢查約束(8.0.16版本後) | 保證欄位值滿足某一個條件 | CHECK |
外來鍵約束 | 用來讓兩張表的資料之間建立連線,保證資料的一致性和完整性 | FOREIGN KEY |