MySQL經常使用函數,溫故而知新!

概念:

至關於java中的方法,將一組邏輯語句封裝在方法體中,對外暴露方法名 1)隱藏了實現細節   2)提升代碼的可重用性java

使用:

select 函數名(實參列表)【from 表】    【】中內容可省略mysql

正文:

字符函數:

  • length:獲取字節個數(utf-8 一個漢字爲3個字節,gbk爲2個字節)

SELECT LENGTH('cbuc')        # 輸出 4
SELECT LENGTH('蔡不菜cbuc')   # 輸出13
  • concat:拼接字符串

SELECT CONCAT('C','_','BUC')   # 輸出 C_BUC
  • upper:將字母變成大寫

SELECT UPPER('cbuc')    # 輸出 CBUC
  • lower:將字母變成小寫

SELECT LOWER('CBUC')   # 輸出 cbuc
  • substr / substring:裁剪字符串

    該方法進行了重構,圖片
substr(str,pos)       # str:要裁剪的字符串 , pos:要裁剪的長度
substr(str,pos,len)   # str:要裁剪的字符串 , pos/len:從哪一個位置開始裁剪幾位
# substring同理
  • instr:返回子串第一次出現的索引,若是沒有則返回0

SELECT INSTR('蔡不菜','蔡')  # 輸出 1 (mysql是從1開始算位數)
  • trim:字符串去【字符】

SELECT TRIM('  cbuc  ')                 # 輸出 cbuc
SELECT TRIM('a' from 'aaaacbucaaaa')    #輸出 cbuc
  • lpad:用指定字符實現左填充指定長度

SELECT LPAD('cbuc',6,'*')        # 輸出 **cbuc
  • rpad:用指定字符實現右填充指定長度

SELECT RPAD('cbuc',6,'*')       # 輸出 cbuc**
  • replace 替換

SELECT REPLACE('小菜愛睡覺','睡覺','吃飯')  # 輸出 小菜愛吃飯

數學函數

  • round:四捨五入

SELECT round(1.5)  # 輸出  2
SELECT round(-1.5)  # 輸出 -2 該四捨五入計算方式爲:絕對值四捨五入加負號
  • ceil:向上取整,返回>=該參數的最小整數

SELECT CEIL(1.5);  # 輸出  2
SELECT CEIL(-1.5);  # 輸出 -1
  • floor:向下取整,返回<=該參數的最大整數

SELECT FLOOR(1.5);  # 輸出  1
SELECT FLOOR(-1.5);  # 輸出 -2
  • truncate:截斷

SELECT TRUNCATE(3.1415926,2);  # 輸出 3.14
  • mod:取餘

SELECT MOD(10,3);  # 輸出 1
SELECT MOD(10,-3);  # 輸出 1
日期函數
  • now:返回當前系統日期+時間

SELECT NOW()         # 輸出 2020-02-16 11:43:21
  • curdate:返回當前系統日期,不包含時間

SELECT CURDATE()  # 輸出 2020-02-16
  • curtime:返回當前時間,不包含日期

SELECT CURTIME()  # 輸出 11:45:35
  • year/month/day 能夠獲取指定的部分,年、月、日、小時、分鐘、秒

SELECT YEAR(NOW())  # 輸出 2020 其餘用法一致
  • str_to_date:將字符經過指定的格式轉換成日期

SELECT STR_TO_DATE('02-17 2020','%c-%d %Y')   # 輸出 2020-02-17
  • date_format:將日期轉換成字符

SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日')  # 輸出 2020年02月17日
  • datediff:兩個日期天數之差

SELECT DATEDIFF(NOW(),'2020-02-12')           # 輸出 5

其餘函數

  • VERSION:查看mysql 版本

SELECT VERSION();           # 輸出 5.7.17
  • DATABASE:查看當前數據庫

SELECT DATABASE()          # 輸出 cbuc_datebase
  • USER:查看當前用戶

SELECT USER()         # 輸出 root@localhost

流程控制函數

  • if 函數:相似三目運算

 SELECT IF(10<5,'大','小')  # 輸出 小
  • case函數:case 有兩種用法

  1. switch case 的效果
case 要判斷的字段或表達式
when 常量1 then 要顯示的值1或語句1;
when 常量2 then 要顯示的值2或語句2;
...
else 要顯示的值n或語句n;
end
  1. 相似於多重if
case 
when 條件1 then 要顯示的值1或語句1
when 條件2 then 要顯示的值2或語句2
...
else 要顯示的值n或語句n
end
相關文章
相關標籤/搜索