MYSQL資料庫學習----MYSQL函數

來源:互聯網
上載者:User

標籤:

MYSQL函數分為幾種

  1. 數學函數
  2. 字串函數
  3. 日期和時間函數
  4. 條件判斷函數
  5. 系統資訊函數
  6. 加密函數
  7. 格式化函數

一:數學函數

主要使用的幾個數學函數

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

id count
1 90
2 50

 

 

 

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

id count
1 90
2 50

 

 

 

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函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.