標籤:
MYSQL函數分為幾種
- 數學函數
- 字串函數
- 日期和時間函數
- 條件判斷函數
- 系統資訊函數
- 加密函數
- 格式化函數
一:數學函數
主要使用的幾個數學函數
1 ABS()----絕對值函數
eg. SELECT ABS(-5);
返回 5
2 PI()----圓周率函數
eg. SELECT PI();
返回 3.141596
3 SIGN()----符號函數
正數返回1,0返回0,負數返回-1
eg. SELECT SIGN(5),SIGN(0),SIGN(-5);
返回 1,0,-1
4 RAND()----隨機函數
返回0~1之間的隨機數
eg. SELECT RAND();
返回 0.92321421341234
如果需要返回一個0~100的隨機數可以SELECT RAND()*100;
5 CEIL(x)----整數函數
返回一個大於或者等於x的最小整數
eg. SELECT CEIL(9.1);
返回 10
6 FLOOR(x)----整數函數
返回一個小於或者等於x的最大整數
eg. SELECT FLOOR(9.1);
返回 9
數學函數還有其他的正弦函數,餘弦函數等等等,這裡就不一一舉例。
二:字串函數
1 LENGTH(s)----字串長度函數
返回字串s的字元長度
eg. SELECT LENGTH("MYSQL");
返回 5
2 CONCAT(s1,s2,....)----將字串1和字串2多個字串合并為一個字串
eg. SELECT CONCAT("MYSQL","DATABASE");
返回 ”MYSQLDATABASE"
3 UPPER(s)/LOWER(s)----字串大小寫函數
UPPER(s):字串s全部大寫
LOWER(s):字串s全部小寫
4 INSTR(s,s1)----字元在字串中的位置函數
字串s中字元s1的開始位置
eg. INSTR("MYSQL", "Y");
返回 2
5 LEFT(s,n)/RIGHT(s,n)/SUBSTRING(s,n,len)----字串截取函數
LEFT(s,n):返回字串s前n個字元
RIGHT(s,n):返回字串s後n個字元
SUBSTRING(s,n,len):返回字串第n個字元開始len個字串
6 LTRIM(s)/RTRIM(s)/TRIM(s)/TRIM(s1 FROM s)----去掉字串兩端的空格或者特定字元函數
LTRIM(s):去掉字串s左邊的空格
RTRIM(s):去掉字串s右邊的空格
TRIM(s):去掉字串s兩邊的空格
TRIM(s1 FROM s):去掉字串s兩邊的字串s1
7 REPEAT(s,n)----重複字串函數
eg. SELECT REPEAT("MYSQL",2);
返回 "MYSQLMYSQL"
三:日期和時間函數
MYSQL中日期和時間函數,分為日期函數,時間函數還有就是日期和時間合在一起的函數,日期函數就是指年,月,日這些,時間函數就是時,分,秒函數
1 CURDATE()/CURRENT_DATE()----當前日期函數
2 CURTIME()/CURRENT_TIME()----目前時間函數
3 NOW()/LOCALTIME()/SYSDATE()/CURRENT_TIMESTAMP()----當前日期時間函數
4 MONTH(D)----當前日期的月份值
5 MONTHNAME(D)----當前日期的月份名稱
6 DAYOFMONTH(D)----當前日期是本月的第幾天
7 DAYNAME(D)----當前日期是星期幾(名稱)
8 DAYOFWEEK(D)----當前日期是星期幾(數值)1表示星期日,2表示星期一
9 WEEKDAY(D)----當前日期是星期幾(數值)0表示星期日,1表示星期一
10 WEEK(D)----當前日期是本年中第幾個星期(數值)範圍0~53
11 WEEKOFYEAR(D)----當前日期是本年中第幾個星期(數值)範圍1~53
12 YEAR(D)----當前的年份值
13 HOUR(T)----目前時間的小時值
14 MINUTE(T)----目前時間的分鐘值
15 SECOND(T)----目前時間的秒鐘值
16 ADDDATE(D,N)----當前日期向後N天后的日期
17 SUBDATE(D,N)----當前日期向前N天后的日期
18 ADDTIME(T,N)----目前時間加上N秒後的時間
19 SUBTIME(T,N)----目前時間減去N秒後的時間
四:條件判斷函數
1 IF(條件運算式, s1, s2)----判斷語句
如果條件運算式為真,則返回字串s1
如果條件運算式為假,則返回字串s2
eg. 假設有個表格demo
SELECT id,count,IF(count>=60,‘PASS‘,‘FAIL‘) AS status FROM demo;
| id |
count |
status |
| 1 |
90 |
PASS |
| 2 |
50 |
FAIL |
2 IFNULL(s1, s2)----判斷是否為NULL函數
如果s1不為NULL就返回s1,否則返回s2
3 CASE函數
CASE WHEN 條件運算式1 THEN s1 WHEN 條件運算式2 THEN s2...END
CASE 欄位 WHEN 條件運算式1 THEN s1 WHEN 條件運算式2 THEN s2...END
CASE開始....END結束
兩種寫法都是同一個意思,都是當條件運算式1為真時則返回s1,當條件運算式2為真時則返回s2
eg. 假設有個表格demo
SELECT id, count CASE WHEN count>60 ‘PASS‘ WHEN count<60 ‘FAIL‘ END AS status FROM demo;
| id |
count |
status |
| 1 |
90 |
PASS |
| 2 |
50 |
FAIL |
五:系統資訊函數
1 VERSION()----MYSQL版本函數
2 CONNECTION_ID()----資料庫連接數函數
3 DATABASE()----當前使用的資料庫名稱函數
4 USER()----當前訪問資料庫使用者名稱稱函數
其他的幾個系統資訊函數不是經常用到,這裡就不一一舉例
六:加密函數
1 PASSWORD(s):加密函數,一般是給使用者密碼加密的,是無法復原加密函數
2 MD5(s):MD5加密,是無法復原加密函數
3 ENCODE(s,s1):用字元s1給字串s加密
4 DECODE(s,s1):用字元s1給字串s解密
七:其他函數
1 FORMAT(x,n):格式化函數,對x數值四捨五入並且保留小數點後n位
2 INET_ATON(ip):將IP轉換為數字表示
3 INET_NTOA(ip):將數字轉換為IP表示
MYSQL資料庫學習----MYSQL函數