一、字符函數
1) LENGTH
#獲取參數值的字節個數
SELECT LENGTH ('lala') ;
結果: 4
2) CONCAT
#拼接字符串
SELECT CONCAT ('asd' , 'we' );
結果: asdwe
3) UPPER
#將參數全部變為大寫
SELECT UPPER(' abcd' );
結果: ABCD
3) LOWER
# 將參數全部變為小寫
SELECT LOWER(' ABCD' );
結果: abcd
4) SUBSTR
#索引從1開始,返回指定位置及其之后的字符串
SELECT SUBSTR( ' ABCD' , 2 );
結果:BCD
#截取從指定索引處(第二個參數)開始,獲取索引位置及其后指定字符長度的字符串(第三個參數)
SELECT SUBSTR( ' ABCD' , 1,3 );
結果:ABC
5) INSTR
# 返回第二個參數在第一個參數中第一次出現的位置,若沒有出現,則返回0
SELECT INSTR('ABCD' , 'CD')
結果: 3
SELECT INSTR('ABCD' , 'E')
結果: 0
6) TRIM
#去除首尾指定的字符,若沒有指定,則表示去除空格
SELECT TRIM ( '#' , '###acd##sas###');
結果: acd##sas
7) LPAD
#用指定的字符實現左填充指定長度,同時也是結果的最終長度
SELECT LPAD( 'abc' , 4 , '#'');
結果: #ABC
8) RPAD
#用指定的字符實現右填充指定長度,同時也是結果的最終長度
SELECT LPAD( 'ABC' , 4 , '#');
結果: ABC#
SELECT LPAD( 'ABC' , 2 , '#');
結果: AB
9) REPLACE
#替換所有的指定的字符串為另一個字符串
SELECT REPLACE( 'ABCBCD' , 'BC' ,'#' );
結果: A##D
二、數學函數
1) ROUND
#四舍五入
SELECT ROUND(-1.55);
結果: -2
#保留指定小數的位數
SELECT ROUND (1.547,2);
結果: 1.54
2) CEIL
#向上取整,返回大於等於該參數的最小整數
SELECT CEIL (-1.0002);
結果: -1
3) FLOOR
#向下取整,返回小於等於該參數的最大整數
SELECT CEIL (9.99999);
結果: 9
4) TRUNCATE
#截斷
SELECT TRUNCATE (1.6699,2);
結果: 1.66
5) MOD
#取模
SELECT MOD(-10,-3)
結果: -1
三、日期函數
1) NOW
#返回當前系統日期+時間
SELECT NOW();
2) CURDATE
#返回當前系統時間,不包含時間
SELECT CURDATE();
3) CURTIME
#返回當前時間,不包含日期
SELECT CURTIME();
4) MONTHNAME , DAYNAME 等
#返回日期的英文名字
SELECT DAYNAME(NOW());
5) STR_TO_DATE
#將字符串通過指定的格式轉化為日期
SELECT STR_TO_DATE('4-3#1992', '%m-%d#%Y');
結果:1992-04-03
6) DATE_FORMAT
#將日期轉化為指定格式字符串
SELECT DATE_FORMAT(NOW(), '%m#%d#%Y');
結果: 04#27#2019
三、其他函數
1) SELECT VERSION()
#獲取sql的版本號
2) SELECT DATABASE()
#獲取當前所在數據庫名
3)SELECT USER()
#獲取登陸用戶名
四、流程控制函數
1) if
#一共三個參數,若第一個參數代表的表達式值為true, 則執行第二個參數代表的表達式,否則執行第三個參數代表的表達式
SELECT IF (10 > 5 , '大' , '小' );
結果: 大
2) case
用法一:
#相當於switch case
CASE 要判斷的字段或者表達式
WHEN 常量1 THEN 要顯示的值1或者與語句1
WHEN 常量2 THEN 要顯示的值2或者與語句2
WHEN 常量3 THEN 要顯示的值3或者與語句3
ELSE 要顯示的值x或者與語句x
END
用法二:
#相當於多重if
#相當於switch case
CASE
WHEN 條件1 THEN 要顯示的值1或者與語句1
WHEN 條件2 THEN 要顯示的值2或者與語句2
WHEN 條件3 THEN 要顯示的值3或者與語句3
ELSE 要顯示的值x或者與語句x
END