成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十個非常實用的MySQL函數,你要不要進來領走

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

十個非常實用的MySQL函數,你要不要進來領走

前言

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

 

函數  

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

  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')
作用: 顯示指定字符長度。
應用場景: 查看字符長度時。
例子

 

  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)
作用:格式化日期。
應用場景:格式化日期時。
例子

 

  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:表示年(兩位數),例如: 17 年。
%Y:表示4位數中的年,例如: 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)
作用: 增加/減少日期時間
應用場景:當前時間的前一天,前幾分鐘。 常用于數據統計。
例子

 

  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:表示數量。
unit:表示單位,支持毫秒(microsecond),秒(second),小時(hour),天(day),周(week),年(year)等。

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

 

  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支持的不是全部基本數據類型,支持的詳細類型,請參考之前的文章《談談MySQL顯示類型轉換》。

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

 

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

 

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

例如: (僅做演示):

 

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

支持的加密函數有:

  1. md5()

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

  3. sha1()

  4. password() 等等

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

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

 

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

 

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

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

命令json_object(函數)
作用:轉換json字符串
應用場景:指定數據轉換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. 聚合函數
命令: sum(),count(),avg(),max(),min()
作用:統計,求平均值,最大,最小值
應用場景:這類函數非常常見,主要用于數據統計,在SQL優化方面,也適用。
例子

  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) 

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

9. distinct()
命令: distinct
作用:去重
應用場景:需要統計類型,狀態,計算區分度時。
例子

 

  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) 

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

責任編輯:龐桂玉 來源: andyqian的博客
相關推薦

2017-12-12 14:50:33

數據庫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

框架

2015-10-21 16:27:45

公務員國考大數據

2023-10-06 12:04:41

ORM關系型數據庫

2017-11-20 09:00:43

跳槽職場精英年終獎

2012-03-16 14:23:00

框架

2015-10-22 10:57:12

Facebook功能

2024-05-15 08:59:52

Python編程

2022-01-05 07:07:36

網絡

2022-04-24 10:12:25

Python軟件包代碼

2016-11-02 10:03:51

Linux雙引導

2021-02-21 09:09:24

GoGOPATH代碼

2013-08-02 09:29:38

2025-02-17 16:45:40

2019-09-26 14:20:27

JavaScript代碼編程語言

2015-07-15 13:54:13

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区三区四区 | 国产精品国产成人国产三级 | 精品日韩一区二区 | 国产女人叫床高潮大片免费 | 人人干视频在线 | 成人免费视频一区 | 日本一区二区三区精品视频 | 国产99精品 | 欧美一区二区在线 | 欧美性一区二区三区 | 91精品国产91久久久久久吃药 | 日韩精品一区二区在线观看 | 日韩一级| 国产成人免费视频网站高清观看视频 | 日韩一区二区三区在线播放 | 97人人澡人人爽91综合色 | 理论片免费在线观看 | 男女一区二区三区 | 国产在线精品一区二区 | 91免费版在线观看 | 4hu最新网址 | 国产良家自拍 | 97精品一区二区 | 欧美在线一区二区三区四区 | 在线小视频 | 伊人国产精品 | 成人精品国产一区二区4080 | 精品人伦一区二区三区蜜桃网站 | 综合久久亚洲 | 国产精品欧美大片 | 欧美一区二区三区视频在线观看 | 亚州视频在线 | 日本久久精品视频 | 国产成人综合亚洲欧美94在线 | 国产一区二区三区四区三区四 | 国产午夜精品久久久 | 久久尤物免费一区二区三区 | 日韩中文在线 | 一级毛片在线播放 | 久久综合影院 | 久久一二 |