Mysql常用函數小總結

来源:https://www.cnblogs.com/lverkou/archive/2020/06/06/13055614.html
-Advertisement-
Play Games

Mysql資料庫提供了大量的函數,學會使用將會事半功倍,以下分別為字元串函數,數值函數,時間和日期函數,系統函數 (一)字元串函數 CONCAT(s1,s2,...) 返回連接參數產生的字元串,一個或多個待拼接的內容,任意一個為NULL則返回值為NULL SELECT CONCAT('hel','l ...


Mysql資料庫提供了大量的函數,學會使用將會事半功倍,以下分別為字元串函數,數值函數,時間和日期函數,系統函數

(一)字元串函數

  •  CONCAT(s1,s2,...)

返回連接參數產生的字元串,一個或多個待拼接的內容,任意一個為NULL則返回值為NULL

SELECT CONCAT('hel','llo');
---- 返回hello

 

  • CONCAT_WS(x,s1,s2,...)  

返回多個字元串拼接之後的字元串,每個字元串之間有一個x,x可以是“”,“ ”,“-”

 

  • STRCMP(s1,s2)  

若s1和s2中所有的字元串對應位置逐個比較,都相同,則返回0;根據當前分類次序,第一個參數小於第二個則返回-1,其他情況返回1

 

SELECT STRCMP("runoob", "runoob");
---- 返回0
  • CHAR_LENGTH(str)

計算字元串字元個數,英文占用一個位元組,中文與編碼有關 UTF-8:1個漢字=3個位元組;GBK:一個漢字=2個位元組

  • LENGTH(s)

返回字元串 s 的字元數

SELECT LENGTH('1234');
---- 返回4
  • LCASE(s)
  • LOWER(s)

將字元串 s 的所有字母變成小寫字母

SELECT LOWER('RUNOOB');
---- 返回runoob
  • UCASE(s)
  • UPPER(s)

將字元串 s 的所有字母變成大寫字母

SELECT UCASE('runoob');
---- 返回RUNOOB
  • FIND_IN_SET(s1,s2)

返回在字元串s2中與s1匹配的字元串的位置,s2是用逗號隔開的字元串,位置從1開始算,0表示沒有找到

SELECT FIND_IN_SET("c", "a,b,c,d,e");
---- 返回3
  • LOCATE(str1,str)、
  • POSITION(str1 IN str)、
  • INSTR(str,str1)

三個函數作用相同,返回子字元串str1在字元串str中的開始位置(從第幾個字元開始)

SELECT LOCATE('st','myteststring');
---- 返回5
  • LEFT(s,n)、
  • RIGHT(s,n)

前者返回字元串s從最左邊開始的n個字元,後者返回字元串s從最右邊開始的n個字元

  • SUBSTRING(s,start,length)、
  • SUBSTR(s, start, length)、
  • MID(s,start,length)

三個函數作用相同,從字元串s中返回一個第start個字元開始、長度為length的字元串

SELECT SUBSTR/SUBSTRING("RUNOOB", 2, 3);
---- 從字元串 RUNOOB 中的第 2 個位置截取 3個 字元,返回UNO
  • TRIM(s)

去掉字元串 s 開始和結尾處的空格

SELECT TRIM('    RUNOOB    ');
---- 返回RUNOOB
  • LTRIM(s)

去掉字元串 s 開始處的空格

SELECT LTRIM('    RUNOOB    ');
---- 返回 ’RUNOOB   ‘
  • RTRIM(s)

去掉字元串 s 結尾處的空格

SELECT RTRIM('    RUNOOB    ');
---- 返回 ’    RUNOOB‘
  • INSERT

(s1,x,len,s2)字元串 s2 替換 s1 的 x 位置開始長度為 len 的字元串

SELECT INSERT("google.com", 1, 6, "runnob");
---- 返回runoob.com
  • REPLACE(s,s1,s2)

返回一個字元串,用字元串s2替代字元串s中所有的字元串s1

(二)數學函數

ABS(x) 返回x的絕對值

SELECT ABS(-1);
---- 返回1

AVG(expression) 返回一個表達式的平均值,expression 是一個欄位

SELECT AVG(age) FROM student;

CEIL(x)/CEILING(x) 返回大於或等於 x 的最小整數 (向上取整)

SELECT CEIL(1.5);
SELECT CEILING(1.5);   
---- 返回2

FLOOR(x) 返回小於或等於 x 的最大整數 (向下取整)

SELECT FLOOR(1.5); 
---- 返回1

EXP(x) 返回 e 的 x 次方

SELECT EXP(3);
---- 計算 e 的三次方,返回20.085536923188

GREATEST(expr1, expr2, expr3, …) 返回列表中的最大值

SELECT GREATEST(3, 12, 34, 8, 25);
---- 返回以下數字列表中的最大值34

LEAST(expr1, expr2, expr3, …) 返回列表中的最小值

SELECT LEAST(3, 12, 34, 8, 25);
---- 返回以下數字列表中的最小值3

LN 返回數字的自然對數

SELECT LN(2);
---- 返回 2 的自然對數:0.6931471805599453

LOG(x) 返回自然對數(以 e 為底的對數)

SELECT LOG(20.085536923188);
---- 返回 3

MAX(expression)返回欄位 expression 中的最大值

SELECT MAX(age) AS maxAge FROM Student;
---- age最大值

MIN(expression)返回欄位 expression 中的最大值

SELECT MIN(age) AS minAge FROM Student;
---- age最小值

POW(x,y)/POWER(x,y)返回 x 的 y 次方

SELECT POW(2,3);
SELECT POWER(2,3);
---- 返回2 的 3 次方:8

RAND()返回 0 到 1 的隨機數

SELECT RAND();
---- 返回 0 到 1 的隨機數,若()裡面有數字,RAND(x),x相同時,返回值相同

ROUND(x)返回離 x 最近的整數

SELECT ROUND(1.23456);
---- 返回 1

SIGN(x)返回 x 的符號,x 是負數、0、正數分別返回 -1、0 和 1

SELECT SIGN(-10);
---- 返回 -1

SQRT(x)返回x的平方根

SELECT SQRT(25);
---- 返回5

SUM(expression)返回指定欄位的總和

SELECT SUM(age) AS totalAage FROM Student;
---- 返回age的總和

TRUNCATE(x,y)返回數值 x 保留到小數點後 y 位的值(與 ROUND 最大的區別是不會進行四捨五入)

SELECT TRUNCATE(1.23456,3);
---- 返回1.234

(三)日期函數

CURDATE()/CURRENT_DATE()返回當前日期

SELECT CURDATE();
SELECT CURRENT_DATE();
---- 返回2019-02-19

CURRENT_TIME()/CURTIME()返回當前時間

SELECT CURRENT_TIME();
---- 返回11:40:45

CURRENT_TIMESTAMP()返回當前日期和時間

SELECT CURRENT_TIMESTAMP();
---- 返回2019-02-19 11:41:32

DATE()從日期或日期時間表達式中提取日期值

SELECT DATE("2017-06-15 11:11:16");
---- 返回2017-06-15

DAY(d)返回日期值 d 的日期部分

SELECT DAY("2017-06-15"); 
---- 返回15

DATEDIFF(d1,d2)計算日期 d1-d2 之間相隔的天數

SELECT DATEDIFF('2001-01-01','2001-02-02'); 
---- 返回-32

DAYNAME(d)返回日期 d 是星期幾,如 Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11');
---- 返回Friday

DAYOFMONTH(d)計算日期 d 是本月的第幾天

SELECT DAYOFMONTH('2011-11-11 11:11:11');
---- 返回11

DAYOFWEEK(d)日期 d 今天是星期幾,1 星期日,2 星期一,以此類推

SELECT DAYOFWEEK('2011-11-11 11:11:11');
---- 返回6

DAYOFYEAR(d)計算日期 d 是本年的第幾天

SELECT DAYOFYEAR('2011-11-11 11:11:11');
---- 返回315

EXTRACT(type FROM d)從日期 d 中獲取指定的值,type 指定返回的值,每個type都是一個函數

type可取值為:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

SELECT EXTRACT(MINUTE FROM '2011-12-13 14:15:16');
---- 返回15

UNIX_TIMESTAMP()得到時間戳

SELECT UNIX_TIMESTAMP('2019-2-19');
SELECT UNIX_TIMESTAMP(expression);
---- 返回1550505600

FROM_UNIXTIME()時間戳轉日期

SELECT FROM_UNIXTIME(1550505600);
---- 返回2019-02-19 00:00:00
SELECT FROM_UNIXTIME(1550505600, '%Y-%m-%d');
---- 返回2019-02-19

(四)系統信息函數

(1)VERSION()查看MySQL版本號

(2)CONNECTION_ID()查看當前用戶的連接數

(3)USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()

查看當前被MySQL伺服器驗證的用戶名和主機的組合,一般這幾個函數的返回值是相同的

(4)CHARSET(str)查看字元串str使用的字元集

(5)COLLATION()查看字元串排列方式

DATABASE()返回當前資料庫名

(五)高級函數

IF(expr,v1,v2)如果表達式 expr 成立,返回結果 v1;否則,返回結果 v2

SELECT IF(1>0,'yes','no');
---- 返回yes

CONV(x,f1,f2)返回 f1 進位數變成 f2 進位數

SELECT CONV(13,10,2);
---- 返回1101

 

如有問題 歡迎指出

 

 

 

參考文獻:

https://blog.csdn.net/zeng_ll/article/details/87706409

https://www.cnblogs.com/panchanggui/p/10652322.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在已經編譯安裝好php7場景下安裝curl擴展 cd /root/php7/php-7.2.31/ext/curl #從php官網下載php源碼安裝包 /usr/local/php746/bin/phpize #已經安裝好的phpize的路徑 yum install libcurl-devel #沒 ...
  • 1、Win32Diskimager 優點:使用簡單、方便 缺點:製作的鏡像大小等於SD卡大小,也就是說,如果你的SD卡是32G,製作的鏡像也是32G,製作和燒錄的時間長。而且不能燒錄到小於當前SD卡大小的卡中 步驟: 再任意位置新建一個.img尾碼的文件 樹莓派SD卡使用讀卡器插入電腦,打開Win3 ...
  • 一文瞭解Docker容器技術的操作 前言一、Docker是什麼二、Docker的安裝及測試Docker的安裝Docker的Hello world測試三、Docker的常見操作鏡像的基本操作容器的基本操作鏡像、容器的導入和導出四、關於DockerFile總結 前言 相信點進這篇文章的Coder,不管是 ...
  • 在已經編譯安裝好php7場景下,install gd庫 with free-type (解決Call to undefined function imagettftext()) install gd with free-type 有free-type才能支持php的imagettftext()圖片處 ...
  • 找不到ifconfig命令 sudo apt install net-tools 進入root用戶 su root 更新當前密碼 sudo passwd 查看當前系統配置 uname -a 下載 比如我要下載git apt-get update # 先執行這條命令更新 apt-get install ...
  • 消費者是品牌最重要的資產,如何能夠更好地留存消費者是企業制勝的關鍵。以阿裡為代表的平臺也提出了要從“流量運營”向“消費者運營”的轉型。在信息技術發展日新月異的今天,各大企業與平臺紛紛建立了自己的大數據平臺,累積了海量的數據,如何利用這些數據來洞察消費者,做好消費者運營,成為企業必修的一個課題。本文將 ...
  • Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重覆的成員。 不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 有序集合的成員是唯一的,但分數(score)卻可以重覆。 一、向有序集合添加一個或多個成員,或者更新已存 ...
  • 1,下載nodejs http://nodejs.cn/download/ 註意下載版本,可能與win7 不能使用。 2,安裝,直接點擊下一步。 3,查看安裝nodejs版本 node -v 查看安裝的版本號 npm -v 4,安裝淘寶鏡像 npm install -g cnpm --registr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...