一. 字符串函數
#CHAR_LENGTH(s)返回字符串s的字符數
SELECT CHAR_LENGTH('你好123');
#5
#LENGTH(s)返回字符串s的長度,和字符集有關
SELECT LENGTH('你好123');
#CONCAT(s1,s2,…)將字符串s1,s2等多個字符串合並為一個字符串
SELECT CONCAT('12','34');
#1234
#CONCAT_WS(x,s1,s2,…)同CONCAT(s1,s2,…)函數,但是每個字符串之間要加上x
SELECT CONCAT_WS('@','12','34');
#12@34
#INSERT(s1,x,len,s2)將字符串s2替換s1的x位置開始長度為len的字符串
SELECT INSERT('12345',1,3,'abc');
#abc45
#UPPER(s),UCAASE(S)將字符串s的所有字母變成大寫字母
SELECT UPPER('abc');
#ABC
#LOWER(s),LCASE(s) 將字符串s的所有字母變成小寫字母
SELECT LOWER('ABC');
#abc
#LEFT(s,n)返回字符串s的前n個字符
SELECT LEFT('abcde',2);
#ab
#RIGHT(s,n)返回字符串s的後n個字符
SELECT RIGHT('abcde',2);
#de
#LPAD(s1,len,s2)字符串s2來填充s1的開始處,使字符串長度達到len
SELECT LPAD('abc',5,'xx');
#xxabc
#RPAD(s1,len,s2)字符串s2來填充s1的結尾處,使字符串的長度達到len
SELECT RPAD('abc',5,'xx');
#abcxx
#LTRIM(s)去掉字符串s開始處的空格
#RTRIM(s)去掉字符串s結尾處的空格
#TRIM(s)去掉字符串s開始和結尾處的空格
#TRIM(s1 FROM s)去掉字符串s中開始處和結尾處的字符串s1
SELECT TRIM('@' FROM '@@abc@@');
#abc
#REPLACE(s,s1,s2)將字符串s2替代字符串s中的字符串s1
SELECT REPLACE('abc','a','x');
#xbc
#SUBSTRING(s,n,len)獲取從字符串s中的第n個位置開始長度為len的字符串
SELECT SUBSTRING('helloworld',6,5);
#world
二. 數學函數
#MOD(x,y)返回x除以y以後的餘數
SELECT MOD(5,2);
#1
#SQRT(x)返回x的平方根
SELECT SQRT(25);
#5
#POW(x,y).POWER(x,y)返回x的y次方
SELECT POW(2,3);
#8
#TRUNCATE(x,y)返回數值x保留到小數點後y位的值,y位之後之間舍去
SELECT TRUNCATE(1.23456,3);
#1.234
#ROUND(x,y)保留x小數點後y位的值,但截斷時要進行四舍五入
SELECT ROUND(1.23456,3);
#1.235
#CEIL(x),CEILING(x)返回大於或等於x的最小整數
SELECT CEIL(1.5);
#2
#FLOOR(x)返回小於或等於x的最大整數
SELECT FLOOR(1.5);
#1
三.時間日期函數
#CURDATE(),CURRENT_DATE()返回當前日期
SELECT CURDATE()
update mytable set last_modify_date = CURDATE() where username = 'chai';
insert into mytable (username,hiredate)values('chai',CURDATE());
#CURTIME(),CURRENT_TIME返回當前時間
SELECT CURTIME();
#NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP()返回當前日期和時間
SELECT NOW();
#MONTH(d)返回日期d中的月份值,1->12
SELECT MONTH('2011-11-11 11:11:11');
#MONTHNAME(d) 返回日期當中的月份名稱,如Janyary
SELECT MONTHNAME('2011-11-11 11:11:11')
#November
#DAYOFWEEK(d)日期d今天是星期幾,1星期日,2星期一
SELECT DAYOFWEEK('2011-11-11 11:11:11')
#6
#DAYNAME(d)返回日期d是星期幾,如Monday,Tuesday
SELECT DAYNAME('2011-11-11 11:11:11')
#Friday
CURRENT_TIMESTAMP()時間戳
四. 分組函數
分組函數作用於一組數據,並對一組數據返回一個值。
可以對數值型數據使用AVG 和 SUM 函數。
可以對任意數據類型的數據使用MIN和MAX函數。
COUNT(*)返回表中記錄總數,適用於任意數據類型。
COUNT(expr) 返回expr不為空的記錄總數。
可以使用GROUP BY子句將表中的數據分成若幹組
在SELECT列表中所有未包含在組函數中的列都應該包含在GROUP BY 子句中。
包含在GROUP BY子句中的列不必包含在SELECT列表中
不能在 WHERE 子句中使用組函數。可以在 HAVING 子句中使用組函數。