MySQL常用函數,你真得看看!

2021-03-02 Java知音

作者:  蔡不菜丶

juejin.im/post/5ed3b3fb6fb9a047ed240575

精彩推薦

概念:

相當於java中的方法,將一組邏輯語句封裝在方法體中,對外暴露方法名

使用:

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

正文: 字符函數:

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,'大','小')        # 輸出 小

switch case 的效果

case 要判斷的欄位或表達式
when 常量1 then 要顯示的值1或語句1;
when 常量2 then 要顯示的值2或語句2;
...
else 要顯示的值n或語句n;
end

類似於多重if

case 
when 條件1 then 要顯示的值1或語句1
when 條件2 then 要顯示的值2或語句2
...
else 要顯示的值n或語句n
end

END

我知道你 「在看

相關焦點

  • MySQL 函數相關
    1 常用函數一、數學函數    ROUND(x,y)        返回參數x的四捨五入的有y位小數的值    RAND()        返回0到1內的隨機值,可以通過提供一個參數(種子)使RAND()隨機數生成器生成一個指定的值。
  • MySQL常用函數整理
    ,有需要的也可以一起看一下SQL Server常用函數整理今天繼續分享MySQL的一些常用函數。例如SELECT NULLIF(1,1), NULLIF('A','B'), NULLIF(2+3,4+1);MySQL的IF()函數也可以建立一個簡單的條件測試,這個函數有三個參數,第一個是要被判斷的表達式,如果表達式為真,IF()將會返回第二個參數,如果為假,IF()將會返回第三個參數。
  • MYSQL—數據類型和常用函數(建議收藏)
    常用函數mysql內置函數列表可以從mysql官方文檔查詢,這裡僅分類簡單介紹一些可能會用到的函數。1.系統信息函數VERSION():返回mysql伺服器的版本,是utf8編碼的字符串CONNECTION_ID():顯示連接號(連接的線程號)DATABASE(),SCHEMA():顯示當前使用的資料庫SESSION_USER(), SYSTEM_USER(), USER(), CURRENT_USER, CURRENT_USER
  • mysql常用sql語句總結
    內存裡面的結果集篩選得使用having。:(很佔資源,能不用就不用,有個排序的過程)max()求最大count()求行數avg()平均值min()求最小sum()求總和;這是五個聚合函數。 3、Having子句having篩選結果集,在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。內存裡面的結果集得使用having。
  • mysql中find_in_set()函數的使用
    在做電商項目時,不知你有沒有遇到這樣的一種情況,mysql資料庫中商品表tb_product裡面有個欄位type,它存儲的是商品類型,比如
  • TarsCpp 組件之 MySQL 操作
    在 C++ 開發中,MySQL 官方提供了相關的資料庫連接動態庫 MySQL Connector/C++,接口定義在 `mysql.h` 中,包含 MySQL 基礎操作 API,像常用的 `mysql_real_connect`, `mysql_real_query`, `mysql_store_result`, `mysql_fetch_row` 等。
  • 超全整理,MySQL常用函數
    如果第一個參數不是NULL,函數就會向調用者返回第一個參數;如果是NULL,將返回第二個參數。例如SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false');NULLIF()函數將會檢驗提供的兩個參數是否相等,如果相等,則返回NULL,如果不相等,就返回第一個參數。
  • MySQL 常用語法總結
    SQL有一些統計函數,它們對於生成數據表格很有幫助。下面介紹幾個常用的統計函數:  sum (exepression) 計算表達式的和  avg (exepression) 計算表達式的平均值  count (exepression) 對表達式進行簡單的計數  count (*) 統計記錄數  max (exepression) 求最大值  min (exepression) 求最小值  其中exepression
  • MySQL日期、時間函數總結
    mysql> select now();+-+| now() |+-+| 2021-08-12 20:20:46 |+-+獲得當前日期+時間(date + time)函數:sysdate()sysdate()日期時間函數跟now()類似,不同之處在於:now()在執行開始時值就得到了,sysdate()在函數執行時動態得到值
  • mysql資料庫group by函數的一些用法
    出現問題並不可怕,我們需要學習的正是如何快速定位問題,從以上報錯信息來看,重點應該是with sql_model=only_full_group_by經過一番百度騷操作,我們得知sql_model有以下幾個常用的參數:ONLY_FULL_GROUP_BY:group by聚合用法,如果select的列,沒有在group by中出現,那麼這個SQL
  • MySQL函數及用法示例(收藏大全)
    (一)1、字符串函數ascii
  • Mysql常用的增刪改查語法
    查詢的基本語法select 列名1 [as] [列別名],列名2 from 表1 [as] [表別名] [left] join 表2 on 連接條件 [left] join 表3 on 連接條件 where 檢索條件(不可用統計函數) group by 分組列1,列2 having 檢索條件(可用統計函數
  • MySQL中字符串比較函數學習--MySql語法
    mysql> SELECT 1+'1';        -> 2mysql> SELECT CONCAT(2,' test');        -> '2 test'若想要將數字明確地轉化為字符串,可使用 CAST()或 CONCAT()函數
  • MySQL 常用腳本
    點擊關註上方「SQL資料庫開發」,常用功能腳本 –add-drop-table 在每個create語句之前增加一個drop table   4.導入資料庫   1A:常用source 命令   2 3進入mysql資料庫控制臺,   4 5如mysql -u root -p   6 7mysql>use 資料庫   8 9然後使用source命令,後面參數為腳本文件
  • MySQL中的函數索引
    針對這樣的一個需求,我想到Oracle資料庫中函數索引,不知道MySQL是否支持函數索引,於是查了一下,果然也有這樣的函數索引。但是,在老版本的MySQL中是不支持的,比如5.6版本中就不支持這個功能。下面讓我們來看一下,函數索引到底是一個什麼東東。
  • Mysql常用命令(詳細)
    Mysql常用命令   show databases
  • 新特性解讀 | MySQL 8.0 窗口函數框架用法
    之前在 MySQL 8.0 新特性欄目裡介紹過 8.0 的窗口函數的用法,沒有細化到全部的語法,恰巧今天有客戶追問其中的框架子句用法,寫出來大家一起探討。窗口函數其實就是一個分組窗口內部處理每條記錄的函數,這個窗口也就是之前聚合操作的窗口。
  • 青銅到王者,看看你的MySQL資料庫是什麼段位,如何提升?
    段位低得可憐(PS:最近剛玩哈),剛剛白銀。當時也想讓別人帶帶我,說你只要給多少錢,就能快速帶你從倔強青銅到最強王者,但最後我在裝逼和省錢的抉擇上,我選擇了省錢。我心想就玩一個遊戲,無非你就是比我玩的時間長,有技巧,有經驗嘛,但凡我多花點時間,絕對比你玩的好。話雖這麼說,老張我也不喜歡把時間浪費在遊戲上,但我喜歡抽時間寫博文,給大家多分享知識。
  • 史上最全的MySQL 字符串函數,趕緊收藏!!
    函數運算精度為64位。ELT() 是 FIELD() 的功能補充函數。如果函數中任一參數為 NULL,則返回 NULL。在查找 from_str 時,函數對大小寫是敏感的。在尋找分隔符時,函數對大小寫是敏感的。示例如下:mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);+--+| SUBSTRING_INDEX('www.mysql.com', '.
  • Excel常用函數:max函數、min函數
    Hello,大家好,今天為大家帶來Excel常用函數分享,最值函數,即max函數和min函數。接下來就讓我們具體來看看吧。