“ 那些你不知道的 MySQL 函數”
Hello,大家好。我是公衆號“八點半技術站”的小編-Bruce.D。
今天是週三(2020-04-01),分享一句諺語 “千日造船,一日過江” 。分享給大家的是 「MySQL 模塊」- 函數。因爲函數不管是我們日常開發中還是面試過程中,我們都會運用到。
因此,我希望通過小編的分享,願大家在往後面試中不會被 [函數] 這種問題所困擾。願大家都有一個完美的面試。
01
—
函數概念/介紹
mysql 也是從5.0 開始支持的函數,調用函數可以減少數據在數據庫和應用服務器上的傳輸,對於提高數據處理的效率。
mysql 提供的函數類型分爲:
1. 數學函數
2. 字符串函數
3. 日期時間函數
4. 條件判斷函數
5. 系統信息函數
6. 加密函數
7. 格式化函數
02
—
數據函數
函數 說明
abs(x) 返回x的絕對值
ceil(x) 返回大於或等於x的最小整數,select ceil(1.5) --返回2
floor(x) 返回小於或等於x的最大整數,SELECT FLOOR(1.5) -- 返回1
rand() 返回0->1的隨機數,select rand() --0.93099315644334
pi() 返回圓周率(3.141593)
round(x) 返回離x最近的整數 ,SELECT ROUND(1.23456) --1
mod(x,y) 返回x除以y以後的餘數,select mod(5,3) --2
03
—
字符串函數
函數 說明
char_length(s) 返回字符串s的字符數,SELECT CHAR_LENGTH('你好123') -- 5
length(s) 返回字符串s的長度,SELECT LENGTH('你好123') -- 9
concat(s1,s2) 將字符串s1,s2等多個字符串合併爲一個字符串
upper(s) 將字符串s的所有字母變成大寫字母
left(s,n) 返回字符串s的前n個字符
right(s,n) 返回字符串s的前n個字符
replace(s,s1,s2)將字符串s2替代字符串s中的字符串s1
strcmp(s1,s2) 比較s1,s2,返回的值爲-1,0,1
substring(s,n,len)獲取從字符串s中的第n個位置開始長度爲len的字符串
reverse(s) 將s字符串反轉
load_file(file_name)讀入文件並作爲一個字符串返回文件內容
04
—
時期時間函數
函數 說明
curdate() 返回當前時間的年月日
curtime() 返回當前時間的時分秒
now() 返回當前時間的日期和時間
month(d) 返回日期d中的月份值
monthname(d) 返回日期當中的月份名稱,如Janyary
unix_timestamp()以UNIX時間戳的形式返回當前時間
week(d) 計算日期d是本年的第幾個星期,範圍是0->53
hour(d) 返回d中的小時值
minute(d) 返回d中的分鐘值
second(d) 返回d中的秒鐘值
05
—
條件判斷函數
函數 說明
if(expr,v1,v2) select if(1 > 0,'正確','錯誤')
ifnull(v1,v2) 如果v1的值不爲NULL,則返回v1,否則返回v2。
06
—
系統信息函數
函數 說明
version 返回數據庫的版本
connection_id() 返回服務器的連接數
user() 返回當前用戶
last_insert_id()返回最近生成的AUTO_INCREMENT值
07
—
加密函數
函數 說明
password(str) 對str字符串進行加密
md5(str) MD5(str)函數可以對字符串str進行散列,
可以用於一些普通的不需要解密的數據加密
sha(str) sha加密
sha1(str) sha1加密
————————end————————
歡迎大家加入WeChat 技術交流羣「wechat:xzzs730」
技術羣交流 長按 ↑ 上方二維碼 掃碼加羣
鏈接地址:技術羣分享-存檔記錄
https://github.com/gtcarry888/WeChat-Sharing-records
如有其他問題,可留言至 [email protected] 郵箱。