第二百八十五節,MySQL數據庫-MySQL函數
MySQL數據庫-MySQL函數
1、MySQL內置函數
SELECT執行函數,後面跟要執行的函數
CHAR_LENGTH(str)函數:返回字符串的字符長度
-- CHAR_LENGTH(str)函數:返回字符串的字符長度 SELECT CHAR_LENGTH(‘歡迎光臨‘);
LENGTH(str)函數:返回字符串的字節長度
-- LENGTH(str)函數:返回字符串的字節長度 SELECT LENGTH(‘歡迎光臨‘);
CONCAT(str1,str2,...)函數:拼接字符串
-- CONCAT(str1,str2,...)函數:拼接字符串 SELECTCONCAT(‘你好‘,‘歡迎光臨‘);
CONCAT_WS(鏈接符,str1,str2,...)函數:自定義鏈接符,拼接字符串
-- CONCAT_WS(鏈接符,str1,str2,...)函數:自定義鏈接符,拼接字符串 SELECT CONCAT_WS(‘_‘,‘你好‘,‘歡迎光臨‘);
CONV(N,from_base,to_base)函數:進制轉換
-- CONV(N,from_base,to_base)函數:進制轉換 SELECT CONV(‘a‘,16,2); -- 表示將 a 由16進制轉換為2進制字符串表示
FORMAT(X,D)函數:將數字X 的格式寫為‘#,###,###.##‘,以四舍五入的方式保留小數點後 D 位, 並將結果以字符串的形式返回。若 D 為 0, 則返回結果不帶有小數點,或不含小數部分。
-- FORMAT(X,D)函數:將數字X 的格式寫為‘#,###,###.##‘,以四舍五入的方式保留小數點後 D 位, 並將結果以字符串的形式返回。若 D 為 0, 則返回結果不帶有小數點,或不含小數部分。 SELECT FORMAT(12332.1,4); -- 結果為: ‘12,332.1000‘
INSERT(原始字符串,替換起始位置,替換長度,替換的新字符串)函數:在str的指定位置插入字符串
-- INSERT(原始字符串,替換起始位置,替換長度,替換的新字符串)函數:在str的指定位置插入字符串 SELECT INSERT(‘歡迎光臨官方網站‘,5,2,‘我們‘); --返回:歡迎光臨我們網站
其他函數
INSERT(str,pos,len,newstr) 在str的指定位置插入字符串 pos:要替換位置其實位置 len:替換的長度 newstr:新字符串 特別的: 如果pos超過原字符串長度,則返回原字符串 如果len超過原字符串長度,則由新字符串完全替換 INSTR(str,substr) 返回字符串 str 中子字符串的第一個出現位置。 LEFT(str,len) 返回字符串str 從開始的len位置的子序列字符。 LOWER(str) 變小寫 UPPER(str) 變大寫 LTRIM(str) 返回字符串 str ,其引導空格字符被刪除。 RTRIM(str) 返回字符串 str ,結尾空格字符被刪去。 SUBSTRING(str,pos,len) 獲取字符串子序列 LOCATE(substr,str,pos) 獲取子序列索引位置 REPEAT(str,count) 返回一個由重復的字符串str 組成的字符串,字符串str的數目等於count 。 若 count <= 0,則返回一個空字符串。 若str 或 count 為 NULL,則返回 NULL 。 REPLACE(str,from_str,to_str) 返回字符串str 以及所有被字符串to_str替代的字符串from_str 。 REVERSE(str) 返回字符串 str ,順序和字符順序相反。 RIGHT(str,len) 從字符串str 開始,返回從後邊開始len個字符組成的子序列 SPACE(N) 返回一個由N空格組成的字符串。 SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len) 不帶有len 參數的格式從字符串str返回一個子字符串,起始於位置 pos。帶有len參數的格式從字符串str返回一個長度同len字符相同的子字符串,起始於位置 pos。 使用 FROM的格式為標準 SQL 語法。也可能對pos使用一個負值。假若這樣,則子字符串的位置起始於字符串結尾的pos 字符,而不是字符串的開頭位置。在以下格式的函數中可以對pos 使用一個負值。 mysql> SELECT SUBSTRING(‘Quadratically‘,5); -> ‘ratically‘ mysql> SELECT SUBSTRING(‘foobarbar‘ FROM 4); -> ‘barbar‘ mysql> SELECT SUBSTRING(‘Quadratically‘,5,6); -> ‘ratica‘ mysql> SELECT SUBSTRING(‘Sakila‘, -3); -> ‘ila‘ mysql> SELECT SUBSTRING(‘Sakila‘, -5, 3); -> ‘aki‘ mysql> SELECT SUBSTRING(‘Sakila‘ FROM -4 FOR 2); -> ‘ki‘ TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str) 返回字符串 str , 其中所有remstr 前綴和/或後綴都已被刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設為BOTH 。 remstr 為可選項,在未指定情況下,可刪除空格。 mysql> SELECT TRIM(‘ bar ‘); -> ‘bar‘ mysql> SELECT TRIM(LEADING ‘x‘ FROM ‘xxxbarxxx‘); -> ‘barxxx‘ mysql> SELECT TRIM(BOTH ‘x‘ FROM ‘xxxbarxxx‘); -> ‘bar‘ mysql> SELECT TRIM(TRAILING ‘xyz‘ FROM ‘barxxyz‘); -> ‘barx‘
文本函數
函數 |
用法 |
描述 |
CONCAT() |
CONCAT(x,y,...) |
創建形如xy的新字符串 |
LENGTH() |
LENGTH(column) |
返回列中儲存的值的長度 |
LEFT() |
LEFT(column,x) |
從列的值中返回最左邊的x個字符 |
RIGHT() |
RIGHT(column,x) |
從列的值中返回最右邊的x個字符 |
TRIM() |
TRIM(column) |
從存儲的值刪除開頭和結尾的空格 |
UPPER() |
UPPER(column) |
把存儲的字符串全部大寫 |
LOWER() |
LOWER(column) |
把存儲的字符串全部小寫 |
SUBSTRING() |
SUBSTRING(column, start, length) |
從column中返回開始start的length個字符(索引從0開始) |
MD5() |
MD5(column) |
把儲存的字符串用MD5加密 |
SHA() |
SHA(column) |
把存儲的字符串用SHA加密 |
數字函數
函數 |
用法 |
描述 |
ABS() |
ABS(x) |
返回x的絕對值 |
CEILING() |
CEILING(x) |
返回x的值的最大整數 |
FLOOR() |
FLOOR(x) |
返回x的整數 |
ROUND() |
ROUND(x) |
返回x的四舍五入整數 |
MOD() |
MOD(x) |
返回x的余數 |
RNAD() |
RNAD() |
返回0-1.0之間隨機數 |
FORMAT() |
FORMAT(x,y) |
返回一個格式化後的小數 |
SIGN() |
SIGN(x) |
返回一個值,正數(+1),0,負數(-1) |
SQRT() |
SQRT(x) |
返回x的平方根 |
日期和時間函數
函數 |
用法 |
描述 |
HOUR() |
HOUR(column) |
只返回儲存日期的小時值 |
MINUTE() |
MINUTE(column) |
只返回儲存日期的分鐘值 |
SECOND() |
SECOND(column) |
只返回儲存日期的秒值 |
DAYNAME() |
DAYNAME(column) |
返回日期值中天的名稱 |
DAYOFMONTH() |
DAYOFMONTH(column) |
返回日期值中當月第幾天 |
MONTHNAME() |
MONTHNAME(column) |
返回日期值中月份的名稱 |
MONTH() |
MONTH(column) |
返回日期值中月份的數字值 |
YEAR() |
YEAR(column) |
返回日期值中年份的數字值 |
CURDATE() |
CURDATE() |
返回當前日期 |
CURTIME() |
CURTIME() |
返回當前時間 |
NOW() |
NOW() |
返回當前時間和日期 |
格式化日期和時間(DATE_FORMAT()和TIME_FORMAT())
名詞 |
用法 |
示例 |
%e |
一月中的某天 |
1~31 |
%d |
一月中的某天,兩位 |
01~31 |
%D |
帶後綴的天 |
1st~31st |
%W |
周日名稱 |
Sunday~Saturday |
%a |
簡寫的周日名稱 |
Sun-Sat |
%c |
月份編號 |
1~12 |
%m |
月份編號,兩位 |
01~12 |
%M |
月份名稱 |
January~December |
%b |
簡寫的月份名稱 |
Jan~Dec |
%Y |
年份 |
2002 |
%y |
年份,兩位 |
02 |
%l |
小時 |
1~12 |
%h |
小時,兩位 |
01~12 |
%k |
小時,24小時制 |
0~23 |
%H |
小時,24小制度,兩位 |
00~23 |
%i |
分鐘 |
00~59 |
%S |
秒 |
00~59 |
%r |
時間 |
8:17:02 PM |
%T |
時間,24小時制 |
20:17:02 PM |
%p |
上午或下午 |
AM或PM |
更多函數:中文猛擊這裏 OR 官方猛擊這裏
第二百八十五節,MySQL數據庫-MySQL函數