字符串函數:
字符串連接:CONCAT()和CONCAT_WS()
CONCAT主要實現字符串拼接成為一個字符串:
SELECT CONCAT('My','S','QL')
CONCAT_WS()函數全程為CONCAT With Separator,是CONCAT()函數的特殊形式。函數CONCAT_WS()的定義如下:
CONCAT_WS(SEP,S1,S2,…SN)
上述函數與CONCAT()相比,多了一個表示分割符的SEP參數,即不僅將傳入的其他參數連接起來,而且還會通過分割符將各個字符串分割開。分隔符可以是一個字符串,也可以是其他參數。如果分隔符為NULL,則返回結果為NULL。函數會忽略任何分隔符參數后的NULL值。
比較字符串大小函數STRCMP()
STRCMP(str1,str2)
上述函數用來比較字符串參數str1和str2,如果參數str1大於str2,則返回結果1;如果參數str1小於str2,則返回結果-1;如果參數str1等於str2,則返回結果0。
SELECT STRCMP('abc','abd'), STRCMP('abc','abc'), STRCMP('abc','abb');
獲取字符串長度函數LENGTH()和字符數函數CHAR_LENGTH()
LENGTH(str)
上述函數會獲取傳入的參數str的長度。會計算空格長度。
函數CHAR_LENGTH()的定義如下:
CHAR_LENGTH(str)
實現字母大小寫轉換函數UPPER()和字符數函數LOWER()
在MySQL軟件中可以通過函數UPPER()和UCASE()實現將字符串的所有字母轉變成大寫字母。查看幫助文檔,函數UPPER()的定義如下:
UPPER(S)
上述函數會將所傳入的字符串對象S中所有字母全部轉換成大寫字母。
關於實現字母大寫轉換函數除了UPPER()外,還可以通過函數UCASE()來實現,其具體定義如下:
UCASE(S)
查找字符串
1.返回字符串位置的函數FIND_IN_SET() 在MySQL軟件中可以通過函數FIND_IN_SET()獲取相匹配字符串的位置。位置從第一個字符串開始計算。
2.返回指定字符串位置的函數FIELD()
FIELD(str,str1,str2…) 上述函數將會返回第一個與字符串str匹配的字符串的位置。如果沒有找到返回0;
從現有字符串中截取子字符串
1.從左邊或右邊截取子字符串
LEFT(str,num) RIGHT(str,num)
2.截取指定位置和長度子字符串
SUBSTRING(str,num,len) MID(str,num,len)
去除字符串的首尾空格
LTRIM()、函數RTRIM()和函數TRIM()。
1.去除字符串開始處空格
LTRIM(str)
2.去除字符串結束處空格
RTRIM(str)
3.去除字符串首尾空格
TRIM(str)
替換字符串
1.使用INSERT()函數
INSERT(str,pos,len,newstr)) SELECT '這是MySQL數據庫管理系統' 字符串, INSERT('這是MySQL數據庫管理系統',3,5,'Oracle') 轉換后字符串;
(2)執行SQL函數INSERT(),當替換的起始位置大於字符串長度,具體SQL語句如下:
SELECT '這是MySQL數據庫管理系統' 字符串, CHAR_LENGTH('這是MySQL數據庫管理系統') 字符串字符數,
INSERT('這是MySQL數據庫管理系統',16,15,'Oracle') 轉換后字符串;
(3)執行SQL函數INSERT(),當所要替換的長度大於原來字符串中所剩字符串的長度,則從起始位置開始進行全部替換,具體SQL語句如下:
SELECT '這是MySQL數據庫管理系統' 字符串,CHAR_LENGTH('MySQL數據庫管理系統') 剩余字符數,
INSERT('這是MySQL數據庫管理系統',3,15,'Oracle') 轉換后字符串;
2.使用REPLACE()函數
REPLACE(str,substr,newstr))
SELECT '這是MySQL數據庫管理系統' 原字符串,
REPLACE('這是MySQL數據庫管理系統','MySQL','Oracle') 替換后字符串;
數值函數:
獲取隨機數
SELECT RAND(),RAND(),RAND(3),RAND(3);
獲取整數的函數
CEIL(x)——向上取整
FLOOR(x)——向下取整
截取數值函數
TRUNCATE(x,y)
對x保留y位精度,當y=-1時精度達到最小值。
四舍五入函數
ROUND(x)
ROUND(x,y)
日期時間函數:
SELECT NOW() now方式,CURRENT_TIMESTAMP() timestamp方式,
LOCALTIME() localtime方式,SYSDATE() systemdate方式;
通過各種方式顯示日期和時間
SELECT NOW() 當前時間,
UNIX_TIMESTAMP(NOW()) unix格式,
FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())) 普通格式;
SELECT NOW() 當前時間,
UNIX_TIMESTAMP() unix格式,
UNIX_TIMESTAMP(NOW()) unix格式;
可以利用from_unixtime將一個整型轉換成日期時間,計算的是從1970年開始計算的秒數。
系統信息函數:
獲取MySQL系統信息
SELECT
VERSION() 版本號,
DATABASE() 數據庫名,
USER() 用戶名;
其他: