MySQL經常使用函數,程序員真得看看

概念

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

使用

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

正文

想要了解更多Java架構技術的,能夠關注我一下,我後續也會整理更多關於架構技術這一塊的知識點分享出來,裏面會分享一些:spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化,併發編程這些成爲架構師必備的知識體系。
更多交流方式和獲取微我:xuanwo013程序員

字符函數:
  • length: 獲取字節個數(utf-8 一個漢字爲3個字節,gbk爲2個字節)
SELECT LENGTH('cbuc')    # 輸出 4SELECT LENGTH('蔡不菜cbuc')   # 輸出13複製代碼
  • concat: 拼接字符串
SELECT CONCAT('C','_','BUC')   # 輸出 C_BUC複製代碼
  • upper:將字母變成大寫
SELECT UPPER('cbuc')    # 輸出 CBUC複製代碼
  • lower:將字母變成小寫
SELECT LOWER('CBUC')   # 輸出 cbuc複製代碼
  • substr / substring:裁剪字符串該方法進行了重構

MySQL經常使用函數,程序員真得看看

substr(str,pos)       # str:要裁剪的字符串 , 
pos:要裁剪的長度substr(str,pos,len)   # str:要裁剪的字符串 , 
pos/len:從哪一個位置開始裁剪幾位# substring同理複製代碼
  • instr:返回子串第一次出現的索引,若是沒有則返回0
SELECT INSTR('蔡不菜','蔡')      
  # 輸出 1 (mysql是從1開始算位數)複製代碼
  • trim:字符串去【字符】
SELECT TRIM('  cbuc  ')           
      # 輸出 cbucSELECT TRIM('a' from 'aaaacbucaaaa')    #輸出 cbuc複製代碼
  • lpad:用指定字符實現左填充指定長度
SELECT LPAD('cbuc',6,'*')            # 輸出 **cbuc複製代碼
  • rpad:用指定字符實現右填充指定長度
SELECT LPAD('cbuc',6,'*')            # 輸出 cbuc**複製代碼
  • replace 替換
SELECT REPLACE('小菜愛睡覺','睡覺','吃飯')        # 輸出 小菜愛吃飯複製代碼
數學函數
  • round:四捨五入
SELECT round(1.5)        # 輸出  2SELECT round(-1.5)  
 # 輸出 -2 該四捨五入計算方式爲:絕對值四捨五入加負號複製代碼
  • ceil:向上取整,返回>=該參數的最小整數
SELECT CEIL(1.5);        # 輸出  2SELECT CEIL(-1.5);        # 輸出 -1複製代碼
  • floor:向下取整,返回<=該參數的最大整數
SELECT FLOOR(1.5);        # 輸出  1SELECT FLOOR(-1.5);        # 輸出 -2複製代碼
  • truncate:截斷
SELECT TRUNCATE(3.1415926,2);        # 輸出 3.14複製代碼
  • mod:取餘
SELECT MOD(10,3);        # 輸出 1SELECT 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 的效果spring

case 要判斷的字段或表達式when 常量1 then 要顯示的值1或語句1;
when 常量2 then 要顯示的值2或語句2;...else 要顯示的值n或語句n;end複製代碼

2 相似於多重if casesql

when 條件1 then 要顯示的值1或語句1when 條件2 then 
要顯示的值2或語句2...else 要顯示的值n或語句nend複製代碼

想要了解更多Java架構技術的,能夠關注我一下,我後續也會整理更多關於架構技術這一塊的知識點分享出來,裏面會分享一些:spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化,併發編程這些成爲架構師必備的知識體系。數據庫

相關文章
相關標籤/搜索