亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

這些年一直保持著一個習慣,就是整理知識做成筆記,雖然很多資料我們上網去找一搜就是一大把,然后覺得不錯的資料就把它們收藏起來,比如一些不錯的博客,想著用到的時候再去翻看。

但在這個過程中會出現問題經常遇到,比如說收藏的文章不見了(刪了),再去找別的文章又得重新理解新作者的思路;再比如說自己雖然收藏了一些文章,但是文章里面的局部內容有些是會過時,食之無味棄之可惜,如果能修改一下就好了,可惜不是作者。

于是后來我就自己去整理屬于自己的資料,不斷更新和備注,比如說一些語法或者其他的命令等等,過程雖然麻煩了點,但當需要查資料的時候,直接打開文件搜索關鍵詞快速查找,同時也看到了自己的一些備注,基本上就是看到了就能立馬用起來。

今天就來分享一下我的資料庫里面關于MySQL的常用函數,基本上囊括了平時要用的函數,它們已經陪我走過了不少年頭了,風里來雨里去,縫縫補補又幾年。

收藏多年的MySQL函數大全筆記,用到的時候翻一下,百度都省了

 

為了讓大家更加簡潔明了地看懂它們,我已對老文件做了很多處理,去掉了很多只有我自己才能看得懂的東西,盡可能還原一份大家都能看得懂的東西。

在文章末尾也會給大家附上我自己整理的源文件,可以在文件的基礎上進行靈活地修改和批注等操作,形成屬于自己的資料筆記。


筆記目錄

一、流程控制函數

二、聚合函數

三、加密函數

四、日期函數

五、數字函數

六、字符串函數

七、其他函數源文件


一、流程控制函數

序號

函數

說明

1

IF(test,t,f)

如果test是真,返回t;否則返回f

2

IFNULL(arg1,arg2)

如果arg1不是空,返回arg1,否則返回arg2

3

NULLIF(arg1,arg2)

如果arg1=arg2返回NULL;否則返回arg1

4

CASE WHEN[test1] THEN [result1]…ELSE [default] END

如果testN是真,則返回resultN,否則返回default

5

CASE [test] WHEN[val1] THEN [result]…ELSE [default]END

如果test和valN相等,則返回resultN,否則返回default

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

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

結果:

yes

二、聚合函數

序號

函數

說明

1

COUNT(col)

統計查詢結果的行數

2

MIN(col)

查詢指定列的最小值

3

SUM(col)

求和,返回指定列的總和

4

AVG(col)

求平均值,返回指定列數據的平均值

舉例:SUM(expression)返回指定字段的總和

SELECT SUM(age) AS totalAage FROM Student;

結果:

age的總和

三、加密函數

序號

函數

說明

1

SHA()

計算字符串str的安全散列算法(SHA)校驗和

2

PASSword(str)

返回字符串str的加密版本,這個加密過程是不可逆轉的,和UNIX密碼加密過程使用不同的算法

3

MD5()

計算字符串str的MD5校驗和

4

ENCRYPT(str,salt)

使用UNIXcrypt()函數,用關鍵詞salt(一個可以惟一確定口令的字符串,就像鑰匙一樣)加密字符串str

5

ENCODE(str,key)

使用key作為密鑰加密字符串str,調用ENCODE()的結果是一個二進制字符串,它以BLOB類型存儲

示例1:在字符串上實現ENCODE函數。

SELECT  
ENCODE('geeksforgeeks', 'passwordstring'); 

結果:

Q)?P????j[K 

四、日期函數

序號

函數

說明

1

CURDATE()

返回當前日期

2

CURRENT_DATE()

返回當前日期

3

CURRENT_TIME

返回當前時間

4

CURRENT_TIMESTAMP()

返回當前日期和時間

5

CURTIME()

返回當前時間

6

DATE()

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

7

DATEDIFF(d1,d2)

計算日期 d1->d2 之間相隔的天數

8

YEAR(d)

返回年份

9

YEARWEEK(date, mode)

返回年份及第幾周(0到53),mode 中 0 表示周天,1表示周一,以此類推

10

WEEKOFYEAR(d)

計算日期 d 是本年的第幾個星期,范圍是 0 到 53

11

WEEKDAY(d)

日期 d 是星期幾,0 表示星期一,1 表示星期二

12

WEEK(d)

計算日期 d 是本年的第幾個星期,范圍是 0 到 53

13

TO_DAYS(d)

計算日期 d 距離 0000 年 1 月 1 日的天數

14

TIMESTAMP(expression, interval)

單個參數時,函數返回日期或日期時間表達式;有2個參數時,將參數加和

15

TIMEDIFF(time1, time2)

計算時間差值

16

TIME_TO_SEC(t)

將時間 t 轉換為秒

17

TIME_FORMAT(t,f)

按表達式 f 的要求顯示時間 t

18

TIME(expression)

提取傳入表達式的時間部分

19

SYSDATE()

返回當前日期和時間

20

SUBTIME(t,n)

時間 t 減去 n 秒的時間

21

SUBDATE(d,n)

日期 d 減去 n 天后的日期

22

STR_TO_DATE(string, format_mask)

將字符串轉變為日期

23

SEC_TO_TIME(s)

將以秒為單位的時間 s 轉換為時分秒的格式

24

SECOND(t)

返回 t 中的秒鐘值

25

QUARTER(d)

返回日期d是第幾季節,返回 1 到 4

26

SECOND(t)

返回 t 中的秒鐘值

27

QUARTER(d)

返回日期d是第幾季節,返回 1 到 4

28

PERIOD_DIFF(period1, period2)

返回兩個時段之間的月份差值

29

PERIOD_ADD(period, number)

為 年-月 組合日期添加一個時段

30

NOW()

返回當前日期和時間

31

MONTH(d)

返回日期d中的月份值,1 到 12

32

MONTHNAME(d)

返回日期當中的月份名稱,如 November

33

MINUTE(t)

返回 t 中的分鐘值

34

MICROSECOND(date)

返回日期參數所對應的微秒數

35

MAKETIME(hour, minute, second)

組合時間,參數分別為小時、分鐘、秒

36

MAKEDATE(year, day-of-year)

基于給定參數年份 year 和所在年中的天數序號 day-of-year 返回一個日期

37

LOCALTIMESTAMP()

返回當前日期和時間

38

LOCALTIME()

返回當前日期和時間

39

LAST_DAY(d)

返回給給定日期的那一月份的最后一天

40

HOUR(t)

返回 t 中的小時值

41

FROM_DAYS(n)

計算從 0000 年 1 月 1 日開始 n 天后的日期

42

EXTRACT(type FROM d)

從日期 d 中獲取指定的值,type 指定返回的值。 type可取值為時、分、秒、周等等

43

DAYOFYEAR(d)

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

44

DAYOFWEEK(d)

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

45

DAYOFMONTH(d)

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

46

DAYNAME(d)

返回日期 d 是星期幾,如 Saturday,Sunday

47

DAY(d)

返回日期值 d 的日期部分

48

DATE_SUB(date,INTERVAL expr type)

函數從日期減去指定的時間間隔。

49

DATE_FORMAT(d,f)

按表達式 f的要求顯示日期 d

50

ADDTIME(t,n)

n 是一個時間表達式,時間 t 加上時間表達式 n

51

ADDDATE(d,n)

計算起始日期 d 加上 n 天的日期

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

SELECT DAYNAME('2018-6-1 12:45:21');

結果:

Friday

五、數字函數

序號

函數

說明

1

SUM(expression)

返回指定字段的總和

2

SQRT(x)

返回x的平方根

3

SIN(x)

求正弦值(參數是弧度)

4

SIGN(x)

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

5

ROUND(x)

返回離 x 最近的整數

6

RAND()

返回 0 到 1 的隨機數

7

RADIANS(x)

將角度轉換為弧度

8

POWER(x,y)

返回 x 的 y 次方

9

POW(x,y)

返回 x 的 y 次方

10

PI()

返回圓周率(3.141593)

11

MOD(x,y)

返回 x 除以 y 以后的余數

12

MIN(expression)

返回字段 expression 中的最小值

13

MAX(expression)

返回字段 expression 中的最大值

14

LOG2(x)

返回以 2 為底的對數

15

LOG(x) 或 LOG(base, x)

返回自然對數(以 e 為底的對數),如果帶有 base 參數,則 base 為指定帶底數。

16

LN

返回數字的自然對數,以 e 為底。

17

LEAST(expr1, expr2, expr3, …)

返回列表中的最小值

18

GREATEST(expr1, expr2, expr3, …)

返回列表中的最大值

19

FLOOR(x)

返回小于或等于 x 的最大整數

20

EXP(x)

返回 e 的 x 次方

21

n DIV m

整除,n 為被除數,m 為除數

22

DEGREES(x)

將弧度轉換為角度

23

COUNT(expression)

返回查詢的記錄總數,expression 參數是一個字段或者 * 號

24

COT(x)

求余切值(參數是弧度)

25

COS(x)

求余弦值(參數是弧度)

26

CEILING(x)

返回大于或等于 x 的最小整數

27

CEIL(x)

返回大于或等于 x 的最小整數

28

AVG(expression)

返回一個表達式的平均值,expression 是一個字段

29

ATAN(x)

求反正切值(參數是弧度)

30

ASIN(x)

求反正弦值(參數是弧度)

31

ACOS(x)

求x的反余弦值(參數是弧度)

32

ABS(x)

返回 x 的絕對值

33

TAN(x)

求正切值(參數是弧度)

34

TRUNCATE(x,y)

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

舉例:CEIL(x)/CEILING(x) 返回大于或等于 x 的最小整數

SELECT CEIL(2.5);
SELECT CEILING(2.5);   

結果:

3

六、字符串函數

序號

函數

說明

1

UPPER(s)

將字符串轉換為大寫

2

UCASE(s)

將字符串轉換為大寫

3

TRIM(s)

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

4

SUBSTRING_INDEX(s, delimiter, number)

返回從字符串 s 的第 number 個出現的分隔符 delimiter 之后的子串。
如果 number 是正數,返回第 number 個字符左邊的字符串。
如果 number 是負數,返回第(number 的絕對值(從右邊數))個字符右邊的字符串。

5

SUBSTRING(s, start, length)

從字符串 s 的 start 位置截取長度為 length 的子字符串

6

SUBSTR(s, start, length)

從字符串 s 的 start 位置截取長度為 length 的子字符串

7

STRCMP(s1,s2)

比較字符串 s1 和 s2,如果 s1 與 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1

8

SPACE(n)

返回 n 個空格

9

RTRIM(s)

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

10

RPAD(s1,len,s2)

在字符串 s1 的結尾處添加字符串 s2,使字符串的長度達到 len

11

RIGHT(s,n)

返回字符串 s 的后 n 個字符

12

REVERSE(s)

將字符串s的順序反過來

13

REPLACE(s,s1,s2)

將字符串 s2 替代字符串 s 中的字符串 s1

14

REPEAT(s,n)

將字符串 s 重復 n 次

15

POSITION(s1 IN s)

從字符串 s 中獲取 s1 的開始位置

16

MID(s,n,len)

從字符串 s 的 n 位置截取長度為 len 的子字符串,同 SUBSTRING(s,n,len)

17

LTRIM(s)

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

18

LPAD(s1,len,s2)

在字符串 s1 的開始處填充字符串 s2,使字符串長度達到 len

19

LOWER(s)

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

20

LEFT(s,n)

返回字符串 s 的前 n 個字符

21

LCASE(s)

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

22

LOCATE(s1,s)

從字符串 s 中獲取 s1 的開始位置

23

INSERT(s1,x,len,s2)

字符串 s2 替換 s1 的 x 位置開始長度為 len 的字符串

24

FORMAT(x,n)

函數可以將數字 x 進行格式化 “#,###.##”, 將 x 保留到小數點后 n 位,最后一位四舍五入。

25

FIND_IN_SET(s1,s2)

返回在字符串s2中與s1匹配的字符串的位置

26

FIELD(s,s1,s2…)

返回第一個字符串 s 在字符串列表(s1,s2…)中的位置

27

CONCAT_WS(x, s1,s2…sn)

同 CONCAT(s1,s2,…) 函數,但是每個字符串之間要加上 x,x 可以是分隔符

28

CONCAT(s1,s2…sn)

字符串 s1,s2 等多個字符串合并為一個字符串

29

CHARACTER_LENGTH(s)

返回字符串 s 的字符數

30

CHAR_LENGTH(s)

返回字符串 s 的字符數

31

ASCII(s)

返回字符串 s 的第一個字符的 ASCII 碼。

舉例:INSERT(s1,x,len,s2)字符串 s2 替換 s1 的 x 位置開始長度為 len 的字符串

SELECT INSERT("google.com", 1, 5, "baidu");

結果:

baidu

七、其他函數

序號

函數

說明

1

USER()

返回當前用戶

2

SESSION_USER()

返回當前用戶

3

SYSTEM_USER()

返回當前用戶

4

CURRENT_USER()

返回當前用戶

5

VERSION()

返回數據庫的版本號

6

DATABASE()

返回當前數據庫名

7

COALESCE(expr1, expr2, …, expr_n)

返回參數中的第一個非空表達式(從左向右)

8

CONNECTION_ID()

返回唯一的連接 ID

9

CONV(x,f1,f2)

返回 f1 進制數變成 f2 進制數

10

CONVERT(s USING cs)

函數將字符串 s 的字符集變成 cs

11

CAST(x AS type)

轉換數據類型

12

BINARY(s)

將字符串 s 轉換為二進制字符串

13

BIN(x)

返回 x 的二進制編碼

14

IF(expr,v1,v2)

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

15

IFNULL(v1,v2)

如果 v1 的值不為 NULL,則返回 v1,否則返回 v2。

16

ISNULL(expression)

判斷表達式是否為 NULL

17

LAST_INSERT_ID()

返回最近生成的 AUTO_INCREMENT 值

18

NULLIF(expr1, expr2)

比較兩個字符串,如果字符串 expr1 與 expr2 相等 返回 NULL,否則返回 expr1

19

CASE expression
WHEN condition1 THEN
result1
WHEN condition2 THEN
result2

WHEN conditionN THEN
resultN
ELSE result
END

CASE 表示函數開始,END 表示函數結束。
如果 condition1 成立,則返回 result1,
如果 condition2 成立,則返回 result2,
當全部不成立則返回 result,而當有一個成立之后,后面的就不執行了。

舉例:CONV(x,f1,f2)返回 f1 進制數變成 f2 進制數

SELECT CONV(13,10,2);

結果:

1101

分享到:
標簽:函數 MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定