自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十個非常實用的MySQL函數(shù),你要不要進來領(lǐng)走

數(shù)據(jù)庫 MySQL
今天介紹一些MySQL常用的實用函數(shù)。已經(jīng)知道的朋友,就當(dāng)是鞏固吧,不知道的童鞋,可以好好在自己的機器上,練習(xí)下。

十個非常實用的MySQL函數(shù),你要不要進來領(lǐng)走

前言

  繼上一次《十個非常實用MySQL命令》后,今天奉上十個實用MySQL函數(shù)。下面都是一些比較常用且簡單的函數(shù),在工作中也是非常常用的。

 

函數(shù)  

0. 顯示當(dāng)前時間
命令select now()。
作用: 顯示當(dāng)前時間。
應(yīng)用場景: 創(chuàng)建時間,修改時間等默認值。
例子

  1. mysql> select now(); 
  2. +---------------------+ 
  3. | now()               | 
  4. +---------------------+ 
  5. | 2017-12-27 20:14:56 | 
  6. +---------------------+ 
  7. 1 row in set (0.00 sec) 

1. 字符長度
命令select char_length('andyqan')
作用: 顯示指定字符長度。
應(yīng)用場景: 查看字符長度時。
例子

 

  1. mysql> select char_length('andyqian'); 
  2. +-------------------------+ 
  3. | char_length('andyqian') | 
  4. +-------------------------+ 
  5. |                       8 | 
  6. +-------------------------+ 
  7. 1 row in set (0.00 sec) 

2. 日期格式化
命令select date_format(now(),'%y-%m-%d)。
作用:格式化日期。
應(yīng)用場景:格式化日期時。
例子

 

  1. mysql> select date_format(now(),'%y-%m-%d'); 
  2. +-------------------------------+ 
  3. | date_format(now(),'%y-%m-%d') | 
  4. +-------------------------------+ 
  5. | 17-12-28                      | 
  6. +-------------------------------+ 
  7. 1 row in set (0.00 sec) 

這里支持的格式有:
%y:表示年(兩位數(shù)),例如: 17 年。
%Y:表示4位數(shù)中的年,例如: 2017年
%m:表示月(1-12)
%d: 表示月中的天
%H: 小時(0-23)
%i: 分鐘 (0-59)
%s: 秒 (0-59)

年月日時分秒: %y-%m-%d %H:%i:%s,
如下所示:

 

  1. mysql> select DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s'); 
  2. +----------------------------------------+ 
  3. | DATE_FORMAT(now(),'%y-%m-%d %H:%i:%s') | 
  4. +----------------------------------------+ 
  5. | 17-12-27 20:28:54                      | 
  6. +----------------------------------------+ 
  7. 1 row in set (0.00 sec) 

3. 添加/減少日期時間
命令
DATE_ADD(date,interval expr unit)
DATE_SUB(date,interval expr unit)
作用: 增加/減少日期時間
應(yīng)用場景:當(dāng)前時間的前一天,前幾分鐘。 常用于數(shù)據(jù)統(tǒng)計。
例子

 

  1. mysql> select date_add(now(),interval 1 day); 
  2. +--------------------------------+ 
  3. | date_add(now(),interval 1 day) | 
  4. +--------------------------------+ 
  5. | 2017-12-28 20:10:17            | 
  6. +--------------------------------+ 
  7. 1 row in set (0.00 sec) 

其中Date表示日期格式,其中就包括: 如
2017-12-27,now() 等格式。
expr:表示數(shù)量。
unit:表示單位,支持毫秒(microsecond),秒(second),小時(hour),天(day),周(week),年(year)等。

4. 類型轉(zhuǎn)換
命令: CAST(expr AS type)
作用: 主要用于顯示類型轉(zhuǎn)換
應(yīng)用場景:顯示類型轉(zhuǎn)換
例子

 

  1. mysql> select cast(18700000000 as char); 
  2. +---------------------------+ 
  3. cast(18700000000 as char) | 
  4. +---------------------------+ 
  5. | 18700000000               | 
  6. +---------------------------+ 
  7. 1 row in set (0.00 sec) 

需要注意的是,其中type支持的不是全部基本數(shù)據(jù)類型,支持的詳細類型,請參考之前的文章《談?wù)凪ySQL顯示類型轉(zhuǎn)換》。

5. 加密函數(shù)
命令: md5(data)
作用: 用于加密數(shù)據(jù)
應(yīng)用場景:加密,一些隱私數(shù)據(jù),例如銀行卡號,身份證等需要存儲密文,(當(dāng)然,不建議使用數(shù)據(jù)庫層加密,應(yīng)該在應(yīng)用層加密)
例子

 

  1. mysql> select md5("andyqian"); 
  2. +----------------------------------+ 
  3. | md5("andyqian")                  | 
  4. +----------------------------------+ 
  5. | 8a6f60827608e7f1ae29d1abcecffc3a | 
  6. +----------------------------------+ 
  7. 1 row in set (0.00 sec) 

 

注意事項: 如果目前你們數(shù)據(jù)庫中的數(shù)據(jù)還是明文,此時可以使用數(shù)據(jù)庫加密算法進行加密。

例如: (僅做演示):

 

  1. update t_base_user set name=md5(name),updated_time=now() where id=1; 

支持的加密函數(shù)有:

  1. md5()

  2. des_encrypt(加密) / des_decrypt(解密);

  3. sha1()

  4. password() 等等

這里不再一一介紹,有興趣的同學(xué),可以移步至官網(wǎng)進行詳細了解。

6. 字符串連接
命令: concat(str,str2,str3)
作用:拼接字符串
應(yīng)用場景:拼接字符串,例如在某些字段上同一加上指定字符串。
例子

 

  1. mysql> select concat("andy","qian"); 
  2. +-----------------------+ 
  3. | concat("andy","qian") | 
  4. +-----------------------+ 
  5. | andyqian              | 
  6. +-----------------------+ 
  7. 1 row in set (0.00 sec) 

 

該函數(shù)平時也還是用的比較多的,基本上場景是,在某些數(shù)據(jù)上,加上特定的字符串。方法如下:

7. JSON函數(shù)(5.7版本才支持)

命令json_object(函數(shù))
作用:轉(zhuǎn)換json字符串
應(yīng)用場景:指定數(shù)據(jù)轉(zhuǎn)換json字符串
例子

 

  1. mysql> select json_object("name","andyqian","database","MySQL"); 
  2. +---------------------------------------------------+ 
  3. | json_object("name","andyqian","database","MySQL") | 
  4. +---------------------------------------------------+ 
  5. | {"name""andyqian""database""MySQL"}         | 
  6. +---------------------------------------------------+ 
  7. 1 row in set (0.00 sec) 

 

其中包括json_array:

 

  1. mysql> select json_array("name","andyqian","database","MySQL"); 
  2.  
  3. +--------------------------------------------------+ 
  4.  
  5. | json_array("name","andyqian","database","MySQL") | 
  6.  
  7. +--------------------------------------------------+ 
  8.  
  9. | ["name""andyqian""database""MySQL"]        | 
  10.  
  11. +--------------------------------------------------+ 
  12.  
  13. 1 row in set (0.00 sec) 

 

判斷是否為json字符串的json_valid():

  1. select json_valid('{"name": "andyqian", "database": "MySQL"}'); 

其中為有效json字符串時為1。
無效json字符串時為0.
還有很多方法,不再一一演示。

8. 聚合函數(shù)
命令: sum(),count(),avg(),max(),min()
作用:統(tǒng)計,求平均值,最大,最小值
應(yīng)用場景:這類函數(shù)非常常見,主要用于數(shù)據(jù)統(tǒng)計,在SQL優(yōu)化方面,也適用。
例子

  1. mysql> select max(id) from t_base_user; 
  2. +---------+ 
  3. max(id) | 
  4. +---------+ 
  5. |       2 | 
  6. +---------+ 
  7. 1 row in set (0.00 sec) 

這里有個小技巧,如果主鍵是有序遞增的,當(dāng)需要有多少用戶時,可以使用max(id)來代替count(*)函數(shù)。

9. distinct()
命令: distinct
作用:去重
應(yīng)用場景:需要統(tǒng)計類型,狀態(tài),計算區(qū)分度時。
例子

 

  1. mysql> select count(distinct(name))/count(*) from t_base_user; 
  2. +--------------------------------+ 
  3. count(distinct(name))/count(*) | 
  4. +--------------------------------+ 
  5. |                         0.6667 | 
  6. +--------------------------------+ 
  7. 1 row in set (0.00 sec) 

上述為計算區(qū)分度的例子,如有不明白的,可以參考之前的文章《寫會MySQL索引》 

責(zé)任編輯:龐桂玉 來源: andyqian的博客
相關(guān)推薦

2017-12-12 14:50:33

數(shù)據(jù)庫MySQL命令

2011-05-19 13:15:44

PHP

2018-11-19 09:02:53

垃圾代碼辭職入職

2013-11-29 14:04:42

2012-03-16 14:23:00

框架

2012-03-16 14:23:00

框架

2023-10-06 12:04:41

ORM關(guān)系型數(shù)據(jù)庫

2017-11-20 09:00:43

跳槽職場精英年終獎

2015-10-21 16:27:45

公務(wù)員國考大數(shù)據(jù)

2015-10-22 10:57:12

Facebook功能

2022-01-05 07:07:36

網(wǎng)絡(luò)

2024-05-15 08:59:52

Python編程

2016-11-02 10:03:51

Linux雙引導(dǎo)

2021-02-21 09:09:24

GoGOPATH代碼

2025-02-17 16:45:40

2022-04-24 10:12:25

Python軟件包代碼

2019-10-17 10:45:50

中臺業(yè)務(wù)中臺數(shù)據(jù)中臺

2015-12-16 10:04:56

Windows 10TH2升級

2020-05-26 08:52:01

程序員技術(shù)編程
點贊
收藏

51CTO技術(shù)棧公眾號