最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫中內(nèi)置函數(shù)的使用全解析

 更新時間:2026年05月12日 09:05:52   作者:重生之小比特  
大家在寫 SQL 時,經(jīng)常會遇到處理日期,拼接字符串等場景,如果手寫邏輯又麻煩又容易錯,其實 MySQL 早就給我們準(zhǔn)備好了內(nèi)置函數(shù),直接調(diào)用就能搞定大部分需求,下面小編就和大家系統(tǒng)講解一下吧

大家在寫 SQL 時,經(jīng)常會遇到處理日期、拼接字符串、數(shù)字計算、空值判斷等場景。如果手寫邏輯又麻煩又容易錯,其實 MySQL 早就給我們準(zhǔn)備好了內(nèi)置函數(shù),直接調(diào)用就能搞定大部分需求。

今天這篇文章,我把 MySQL 最常用的日期、字符串、數(shù)學(xué)、其他常用函數(shù)一次性整理好,配案例 + 表格,新手也能直接上手用!

一、日期函數(shù)(最常用,必背)

日常開發(fā)中,記錄時間、計算天數(shù)、加減時間全靠它。

函數(shù)作用
current_date()獲取當(dāng)前日期(年月日)
current_time()獲取當(dāng)前時間(時分秒)
current_timestamp()當(dāng)前時間戳(年月日時分秒)
now()當(dāng)前日期時間(和 timestamp 效果一致)
date(datetime)提取日期部分,去掉時間
date_add (date, interval 數(shù)值 單位)日期加時間
date_sub (date, interval 數(shù)值 單位)日期減時間
datediff(date1, date2)計算兩個日期相差天數(shù)

常用單位

year、month、day、hour、minute、second

快速示例

-- 當(dāng)前日期
SELECT current_date(); 

-- 當(dāng)前時間
SELECT current_time(); 

-- 當(dāng)前完整時間
SELECT now(); 

-- 日期加10天
SELECT date_add('2017-10-28', interval 10 day); 

-- 日期減2天
SELECT date_sub('2017-10-1', interval 2 day); 

-- 計算日期差
SELECT datediff('2017-10-10', '2016-09-01'); 

實戰(zhàn)小案例

建表存生日

CREATE TABLE tmp(
    id INT PRIMARY KEY AUTO_INCREMENT,
    birthday DATE
);
INSERT INTO tmp(birthday) VALUES(current_date());

留言表:只顯示日期、查 2 分鐘內(nèi)發(fā)布的帖子

CREATE TABLE msg (
    id INT PRIMARY KEY AUTO_INCREMENT,
    content VARCHAR(30) NOT NULL,
    sendtime DATETIME
);
INSERT INTO msg(content,sendtime) VALUES('hello1', now());

-- 只顯示日期,不顯示時間
SELECT content, date(sendtime) FROM msg;

-- 查詢2分鐘內(nèi)發(fā)布的帖子
SELECT * FROM msg WHERE date_add(sendtime, interval 2 minute) > now();

二、字符串函數(shù)(拼接、截取、替換)

處理文本、姓名、內(nèi)容展示時高頻使用。

函數(shù)作用
charset(str)返回字符串字符集
concat(s1,s2...)字符串拼接
instr(str,sub)子串第一次出現(xiàn)位置
ucase/upper轉(zhuǎn)大寫
lcase/lower轉(zhuǎn)小寫
left(str,len)從左邊取 len 個字符
length(str)字符串字節(jié)長度
replace(str,old,new)字符串替換
substring(str,pos,len)截取字符串
trim/ltrim/rtrim去空格

快速示例

-- 拼接字符串
SELECT concat('張三', '的語文是', 90, '分');

-- 字符串長度(字節(jié))
SELECT length('張三');

-- 替換字符
SELECT replace('Smith', 'S', '上海');

-- 截取第2個字符開始,取2個
SELECT substring('Smith', 2, 2);

-- 首字母小寫
SELECT concat(lcase(substring(ename,1,1)), substring(ename,2)) FROM emp;

三、數(shù)學(xué)函數(shù)(計算、取整、隨機數(shù))

做統(tǒng)計、報表、數(shù)值處理必備。

函數(shù)作用
abs(x)絕對值
ceiling(x)向上取整
floor(x)向下取整
format(x,n)保留 n 位小數(shù)(四舍五入)
rand()0~1 隨機小數(shù)
mod(x,y)取余 / 取模
conv(x,from,to)進(jìn)制轉(zhuǎn)換

快速示例

-- 絕對值
SELECT abs(-100.2); 

-- 向上取整
SELECT ceiling(23.04); 

-- 向下取整
SELECT floor(23.7); 

-- 保留2位小數(shù)
SELECT format(12.3456, 2); 

-- 隨機數(shù)
SELECT rand(); 

四、其他高頻函數(shù)(必須會)

這些函數(shù)在項目里幾乎天天用。

函數(shù)作用
user()當(dāng)前數(shù)據(jù)庫用戶
database()當(dāng)前數(shù)據(jù)庫名
md5(str)MD5 加密(32 位)
password()MySQL 用戶加密
ifnull(val1,val2)val1 為 NULL 則返回 val2,否則返回 val1

快速示例

-- 當(dāng)前用戶
SELECT user(); 

-- 當(dāng)前庫
SELECT database(); 

-- MD5加密
SELECT md5('admin'); 

-- NULL處理
SELECT ifnull(null, '默認(rèn)值'); 

五、實戰(zhàn) OJ 小練習(xí)

題目:查找字符串 '10,A,B' 中逗號 ',' 出現(xiàn)的次數(shù)。

思路:用原長度 - 去掉逗號后的長度 = 逗號個數(shù)。

SELECT 
    length('10,A,B') - length(replace('10,A,B', ',', '')) AS cnt;

六、總結(jié)(一張圖記?。?/h2>
  • 日期:now / date_add / date_sub / datediff
  • 字符串:concat / replace / substring / length
  • 數(shù)學(xué):abs / ceiling / floor / format / rand
  • 通用:ifnull / md5 / user / database

把這些函數(shù)背熟,80% 的日常 SQL 都能輕松寫出來,代碼更簡潔、效率更高!

到此這篇關(guān)于MySQL數(shù)據(jù)庫中內(nèi)置函數(shù)的使用全解析的文章就介紹到這了,更多相關(guān)MySQL內(nèi)置函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA配置連接MYSQL數(shù)據(jù)庫遇到Failed這個問題解決

    IDEA配置連接MYSQL數(shù)據(jù)庫遇到Failed這個問題解決

    這篇文章主要介紹了IDEA配置連接MYSQL數(shù)據(jù)庫遇到Failed這個問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL慢查詢排查和優(yōu)化的詳細(xì)步驟教學(xué)

    MySQL慢查詢排查和優(yōu)化的詳細(xì)步驟教學(xué)

    慢SQL的排查和優(yōu)化是數(shù)據(jù)庫性能調(diào)優(yōu)的關(guān)鍵環(huán)節(jié),尤其是在高并發(fā)環(huán)境下,慢 SQL 可能會導(dǎo)致性能瓶頸,影響應(yīng)用響應(yīng)速度,以下是關(guān)于如何排查和優(yōu)化慢 SQL 的詳細(xì)步驟,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • 一文教你學(xué)會定位線上MySQL鎖超時問題

    一文教你學(xué)會定位線上MySQL鎖超時問題

    這篇文章主要介紹了一文教你學(xué)會定位線上MySQL鎖超時問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • MySQL建表和增添改查操作代碼

    MySQL建表和增添改查操作代碼

    這篇文章主要介紹了MySQL建表和增添改查操作代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • MySQL 用戶權(quán)限與安全管理最佳實踐

    MySQL 用戶權(quán)限與安全管理最佳實踐

    MySQL用戶權(quán)限與安全管理是保障數(shù)據(jù)庫系統(tǒng)穩(wěn)定與安全的重要環(huán)節(jié),通過合理設(shè)計權(quán)限模型、使用 GRANT/REVOKE命令管理權(quán)限、實施最小權(quán)限原則以及加強密碼,可以大幅降低數(shù)據(jù)庫被非法訪問和數(shù)據(jù)泄露的風(fēng)險,這篇文章主要介紹了MySQL 用戶權(quán)限與安全管理,需要的朋友可以參考下
    2025-03-03
  • mysql刪除重復(fù)行的實現(xiàn)方法

    mysql刪除重復(fù)行的實現(xiàn)方法

    這篇文章主要介紹了mysql刪除重復(fù)行的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • MySQL中索引添加與刪除的操作方法詳解

    MySQL中索引添加與刪除的操作方法詳解

    MySQL索引是提高查詢性能的關(guān)鍵,文章詳細(xì)介紹了如何添加和刪除索引,包括使用ALTER TABLE和CREATE INDEX語句,還討論了索引類型、查看索引信息、最佳實踐和注意事項,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • mysql通過@變量實現(xiàn)遞歸詳細(xì)實例

    mysql通過@變量實現(xiàn)遞歸詳細(xì)實例

    眾所周知目前的mysql版本中并不支持直接的遞歸查詢,下面這篇文章主要給大家介紹了關(guān)于mysql通過@變量實現(xiàn)遞歸的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • MySQL修改時間添加時間自動更新的兩種方法

    MySQL修改時間添加時間自動更新的兩種方法

    這篇文章主要介紹了MySQL修改時間添加時間自動更新的兩種方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • IDEA連接mysql又報錯!Server returns invalid timezone. Go to tab and set serverTimezone  prope的問題

    IDEA連接mysql又報錯!Server returns invalid timezone. Go to tab an

    這篇文章主要介紹了IDEA連接mysql又報錯!Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' prope問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-05-05

最新評論

五家渠市| 九寨沟县| 乌什县| 明星| 湘阴县| 三河市| 滦南县| 余姚市| 金坛市| 南安市| 乐亭县| 伊春市| 陕西省| 佛山市| 德保县| 凤台县| 昆山市| 会宁县| 五大连池市| 乐陵市| 大名县| 翼城县| 太和县| 庄浪县| 双牌县| 綦江县| 盘山县| 蚌埠市| 宣城市| 东莞市| 绿春县| 迁西县| 呼玛县| 定结县| 福安市| 长宁县| 平邑县| 读书| 潮州市| 杭锦旗| 平和县|