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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...