Num01–>字元串函數
1,檢視字元的ascii碼值ascii(str),str是空串時傳回0
select ascii('a');
2,檢視ascii碼值對應的字元char(數字)
select char();
3,拼接字元串concat(str1,str2...)
select concat(,,'ab');
4,包含字元個數length(str)
select length('abc');
5,截取字元串
left(str,len)傳回字元串str的左端len個字元
right(str,len)傳回字元串str的右端len個字元
substring(str,pos,len)傳回字元串str的位置pos起len個字元
select substring('abc123',,);
6,去除空格
ltrim(str)傳回删除了左空格的字元串str
rtrim(str)傳回删除了右空格的字元串str
trim([方向 remstr from str)傳回從某側删除remstr後的字元串str,方向詞包括both、leading、trailing,表示兩側、左、右
select trim(' bar ');
select trim(leading 'x' FROM 'xxxbarxxx');
select trim(both 'x' FROM 'xxxbarxxx');
select trim(trailing 'x' FROM 'xxxbarxxx');
7,傳回由n個空格字元組成的一個字元串space(n)
select space();
8,替換字元串replace(str,from_str,to_str)
select replace('abc123','123','def');
9,大小寫轉換,函數如下
lower(str)
upper(str)
select lower('aBcD');
Num02–>數學函數
1,求絕對值abs(n)
select abs(-);
2,求m除以n的餘數mod(m,n),同運算符%
select mod(,);
select %;
3,地闆floor(n),表示不大于n的最大整數
select floor();
4,天花闆ceiling(n),表示不小于n的最大整數
select ceiling();
5,求四舍五入值round(n,d),n表示原數,d表示小數位置,預設為0
select round();
6,求x的y次幂pow(x,y)
select pow(,);
7,擷取圓周率PI()
select PI();
8,随機數rand(),值為0-1.0的浮點數
select rand();
還有其它很多三角函數,使用時可以查詢文檔
Num03–>日期函數
,擷取子值,值為整數類型,函數如下
year(date)傳回date的年份(範圍在到)
month(date)傳回date中的月份數值
day(date)傳回date中的日期數值
hour(time)傳回time的小時數(範圍是到)
minute(time)傳回time的分鐘數(範圍是到)
second(time)傳回time的秒數(範圍是到)
select year('2016-12-21');
,日期計算,使用+-運算符,數字後面的關鍵字為year、month、day、hour、minute、second
select '2016-12-21'+interval 1 day;
日期格式化date_format(date,format)
參數format可選值如下
%Y 擷取年,傳回完整年份
%y 擷取年,傳回簡寫年份
%m 擷取月,傳回月份
%d 擷取日,傳回天值
%H 擷取時,傳回進制的小時數
%h 擷取時,傳回進制的小時數
%i 擷取分,傳回分鐘數
%s 擷取秒,傳回秒數
示例如下:将使用-拼接的日期轉換為使用空格拼接
select date_format('2016-12-21','%Y %m %d');
目前日期current_date()
select current_date();
目前時間current_time()
select current_time();
目前日期時間now()
select now();
Num04–>類型轉換函數
有cast和convert兩個函數
文法如下:
cast(value as type)
convert(value, type)
value表示要轉換的值
type表示目标類型
目标類型如下:
二進制binary
字元型char,可指定字元個數如char()
日期date
時間time
日期時間型datetime
浮點數decimal
整數signed
無符号整數unsigned
例如:
SELECT CONVERT('125.83',SIGNED);
SELECT CAST('125.83' AS signed);
Num05–>流程控制函數
,類似于python中的if語句,進行選擇判斷
case文法:等值判斷
說明:當值等于某個比較值的時候,對應的結果會被傳回;如果所有的比較值都不相等則傳回else的結果;如果沒有else并且所有比較值都不相等則傳回null
case 值 when 比較值 then 結果 when 比較值 then 結果 ... else 結果 end
例:
select case when then 'one' when then 'two' else 'zero' end as result;
case文法:非等值判斷,可以進行>、<、!=等判斷
說明:當某個條件傳回true時,對應的結果被傳回;如果所有的條件都不傳回true則傳回else的結果;如果沒有else并且所有條件都不傳回true則傳回null
case when 條件 then 結果 when 條件 then 結果 ... else 結果 end
例:
select case when > then 'part1' when > then 'part2' else 'part3' end as result;
,if語句
說明:如果表達式的結果為true,則傳回結果,否則傳回結果
if(表達式,結果,結果)
例:
select if(>,,) as result;
ifnull語句
說明:如果表達式不為null,則傳回表達式的結果,否則傳回表達式的結果
ifnull(表達式,表達式)
例:
select ifnull(,) as result;
nullif語句
說明:如果表達式等于表達式,則傳回null,否則傳回表達式的結果
nullif(表達式,表達式)
例:
select nullif(,) as result;