MySQL常用函數(shù)分為四種:
1、字符串函數(shù):用于處理字符串
2掐暮、數(shù)值函數(shù):用于處理數(shù)字
3蝎抽、日期和時間函數(shù)
4、系統(tǒng)信息函數(shù):用于獲取MySQL軟件的系統(tǒng)信息
一路克、字符串函數(shù)
CANCAT(str1,str2,...strn) 連接字符串str1,str2,...strn為一個完整字符串
INSERT(str,x,y,instr) 將字符串str從x位置開始樟结,y個字符長的子串替換為instr
LOWER(str) 將字符串str中所有字符變?yōu)樾?UPPER(str) 將字符串str中所有字符變?yōu)榇髮?LEFT(str,x) 返回字符串str中最左邊的x個字符
RIGHT(str,x) 返回字符串str中最右邊的x個字符
LPAD(str,n,pad) 使用字符串pad對字符串str最左邊進行填充,直到長度為n
RPAD(str,n,pad) 使用字符串pad對字符串str最右邊進行填充精算,直到長度為n
LTRIM(str) 去掉字符串str左邊的空格
RTRIM(str) 去掉字符串str右邊的空格
REPEAT(str,x) 返回字符串str重復(fù)x遍的結(jié)果
REPLACE(str,a,b) 使用字符串b替換字符串str中所有出現(xiàn)的字符串a(chǎn)
STRCMP(str1,str2) 比較字符串str1和str2
TRIM(str) 去掉字符串str行頭和行尾的空格
SUBSTRING(str,x,y) 返回字符串str中從x位置起y個字符長度的字符串
1瓢宦、合并字符串函數(shù)CONCAT()和CONCAT_WS()
SELECT CONCAT('My','S','QL') 結(jié)果為MySQL
SELECT CONCAT('My','S','QL',NULL) 結(jié)果為 null
SELECT CONCAT_WS('-','S','QL') 結(jié)果為 S-QL
SELECT CONCAT_WS('-','S','QL',NULL) 結(jié)果為 S-QL
SELECT CONCAT_WS(NULL,'S','QL') 結(jié)果為 null
2、比較字符串大小函數(shù)STRCMP()
SELECT STRCMP('abc','abc') 結(jié)果為0
SELECT STRCMP('abc','bca') 結(jié)果為-1
SELECT STRCMP('bca','abc') 結(jié)果為1
3灰羽、獲取字符串長度函數(shù)LENGTH()和字符數(shù)函數(shù)CHAR_LENGTH()
SELECT 'MySQL' 英文字符串,
LENGTH('MySQL') 字符串字符長度,
'常建功' 中文字符串,
LENGTH('常建功') 字符串字符長度
SELECT 'MySQL' 英文字符串,
CHAR_LENGTH('MySQL') 字符串字符長度,
'常建功' 中文字符串,
CHAR_LENGTH('常建功') 字符串字符長度
4驮履、實現(xiàn)字符大小寫轉(zhuǎn)換函數(shù)UPEER()和LOWER()
SELECT 'mysql' 字符串,
UPPER('mysql') 字符串,
UCASE('mysql') 字符串
SELECT 'MYSQL' 字符串,
LOWER('MYSQL') 字符串,
LCASE('MYSQL') 字符串
5、查找字符串
(1)返回字符串位置的FIND_IN_SET()函數(shù)
SELECT FIND_IN_SET('wdw','qwe,dfc,ser,wdw') 結(jié)果為4
(2)返回指定字符串位置的FIELD()
SELECT FIELD('wdw','qwe','dfc','ser','wdw') 結(jié)果為4
(3)返回子字符串相匹配的開始位置LOCATE()廉嚼,POSITION()玫镐,INSTR()
SELECT LOCATE('SQL','MySQL') 位置,
POSITION('SQL' IN 'MySQL') 位置,
INSTR('MySQL','SQL') 位置
(4)返回指定位置的字符串ELT()函數(shù)
SELECT ELT(2,'MySQL','oracle','sql server')
結(jié)果為oracle
(5)選擇字符串的MAKE_SET()函數(shù)
SELECT BIN(5) 二進制數(shù),MAKE_SET(5,'MySQL','Oracle','SQL Server','PostgreSQL') 選取后的字符串,
BIN(7) 二進制數(shù),MAKE_SET(7,'MySQL','Oracle','SQL Server','PostgreSQL') 選取后的字符串;
6、從現(xiàn)有字符串中截取子字符串
(1)怠噪、從左邊或者右邊截取字符串LEFT()恐似、RIGHT()
SELECT 'MySQL' 字符串, LEFT('MySQL',2) 前兩個字符串,
RIGHT('MySQL',3) 后三個字符串
(2)截取指定位置和長度子字符串
SELECT 'oraclemysql' 字符串,
SUBSTRING('oraclemysql',7,5) 截取子字符串,
MID('oraclemysql',7,5) 截取子字符串
(3)、去除字符串的首尾空格
SELECT CONCAT('-',' MySQL ','-') 原來字符串,
CHAR_LENGTH(CONCAT('-',' MySQL ','-')) 原來字符串長度,
CONCAT('-',LTRIM(' MySQL '),'-') 處理后字符串,
CHAR_LENGTH(CONCAT('-',LTRIM(' MySQL '),'-')) 處理后字符串長度
(4)去除字符串結(jié)束處空格
SELECT CONCAT('-',' MySQL ','-') 原來字符串,
CHAR_LENGTH(CONCAT('-',' MySQL ','-')) 原來字符串長度,
CONCAT('-',RTRIM(' MySQL '),'-') 處理后字符串,
CHAR_LENGTH(CONCAT('-',RTRIM(' MySQL '),'-')) 處理后字符串長度
(5)去除字符串首尾空格
SELECT CONCAT('-',' MySQL ','-') 原來字符串,
CHAR_LENGTH(CONCAT('-',' MySQL ','-')) 原來字符串長度,
CONCAT('-',TRIM(' MySQL '),'-') 處理后字符串,
CHAR_LENGTH(CONCAT('-',TRIM(' MySQL '),'-')) 處理后字符串長度
(6)替換字符串INSERT()
SELECT '這是MySQL數(shù)據(jù)庫管理系統(tǒng)' 字符串,
INSERT('這是MySQL數(shù)據(jù)庫管理系統(tǒng)',3,5,'oracle') 處理后字符串
(7)執(zhí)行SQL語句的INSERT()函數(shù)傍念,當(dāng)替換的起始位置大于字符串長度時矫夷,返回原字符串
SELECT '這是MySQL數(shù)據(jù)庫管理系統(tǒng)' 字符串,
CHAR_LENGTH('這是MySQL數(shù)據(jù)庫管理系統(tǒng)') 字符串字符數(shù),
INSERT('這是MySQL數(shù)據(jù)庫管理系統(tǒng)',16,15,'oracle') 處理后字符串
(8)執(zhí)行SQL語句的INSERT()函數(shù),當(dāng)所要替換的長度大于原字符串剩余長度時捂寿,則從起始位置開始全部替換
SELECT '這是MySQL數(shù)據(jù)庫管理系統(tǒng)' 字符串,
CHAR_LENGTH('MySQL數(shù)據(jù)庫管理系統(tǒng)') 剩余字符數(shù),
INSERT('這是MySQL數(shù)據(jù)庫管理系統(tǒng)',3,15,'oracle') 處理后字符串
7口四、使用REPLACE()函數(shù)
SELECT '這是MySQL數(shù)據(jù)庫管理系統(tǒng)' 字符串,
REPLACE('這是MySQL數(shù)據(jù)庫管理系統(tǒng)','MySQL','oracle') 處理后字符串
二、數(shù)值函數(shù)
ABS(x) 返回數(shù)值x的絕對值
CEIL(x) 返回大于x的最大整數(shù)值
FLOOR(x) 返回小于x的最大整數(shù)值
MOD(x,y) 返回x模y的值
RAND() 返回0~1內(nèi)的隨機數(shù)
ROUND(x,y) 返回數(shù)值x的四舍五入后有y位小數(shù)的數(shù)值
TRUNCATE(x,y) 返回數(shù)值x截斷為y位小數(shù)的數(shù)值
1秦陋、獲取隨機數(shù)
SELECT RAND() 獲取不同的隨機數(shù)
SELECT RAND(1) 獲取相同的隨機數(shù)
2蔓彩、獲取整數(shù)函數(shù)
SELECT CEIL(4.3), CEIL(-2.5), CEILING(4.3), CEILING(-2.5),FLOOR(4.3), FLOOR(-2.5)
3、截取數(shù)值函數(shù)
SELECT TRUNCATE(903.53567,2),TRUNCATE(903.53567,-1)
4、四舍五入函數(shù)
SELECT ROUND(903.53567),ROUND(-903.53567),ROUND(903.53567,2),ROUND(903.53567,-1)
三赤嚼、日期和時間函數(shù)
1旷赖、獲取當(dāng)前日期和時間的函數(shù)
SELECT NOW() now方式, CURRENT_TIMESTAMP() timestamp方式,
LOCALTIME() localtime方式, SYSDATE() systemdate方式
2、獲取當(dāng)前日期
SELECT CURDATE() curdate方式, CURRENT_DATE() current_date方式
3更卒、獲取當(dāng)前時間
SELECT CURTIME() curtime方式, CURRENT_TIME() current_time方式
4等孵、獲取日期和時間各部分值
SELECT NOW() 當(dāng)前日期和時間,
YEAR(NOW()) 年,
QUARTER(NOW()) 季度,
MONTH(NOW()) 月,
WEEK(NOW()) 星期,
DAYOFMONTH(NOW()) 天,
HOUR(NOW()) 小時,
MINUTE(NOW()) 分,
SECOND(NOW()) 秒
5、關(guān)于月的函數(shù)
SELECT NOW() 當(dāng)前日期和時間,
MONTH(NOW()) 月,
MONTHNAME(NOW()) 月
6蹂空、關(guān)于星期的函數(shù)
SELECT NOW() 當(dāng)前日期和時間,
WEEK(NOW()) 年中第幾個星期,
WEEKOFYEAR(NOW()) 年中第幾個星期,
DAYNAME(NOW()) 星期,
DAYOFWEEK(NOW()) 星期,
WEEKDAY(NOW()) 星期
7俯萌、關(guān)于天的函數(shù)
SELECT NOW() 當(dāng)前日期和時間,
DAYOFYEAR(NOW()) 年中第幾天,
DAYOFMONTH(NOW()) 月中第幾天
四、系統(tǒng)信息函數(shù)
SELECT VERSION() 版本號,
DATABASE() 數(shù)據(jù)庫名,
USER() 用戶名