MySQL的內(nèi)置函數(shù)
函數(shù)表示對輸入的參數(shù)值返回一個具有特定關(guān)系的值帅韧,MySql提供了大量豐富的函數(shù),在進行數(shù)據(jù)庫管理以及數(shù)據(jù)的查詢和操作時將會經(jīng)常用到各種函數(shù)台谢,通過對數(shù)據(jù)的處理什荣,數(shù)據(jù)庫功能可以變得更加強大屋讶,更加靈活的滿足不同用戶的需求。MYSQL中的內(nèi)置函數(shù)從功能上可以區(qū)分為:字符串函數(shù)仲器,日期于時間函數(shù)煤率,、數(shù)學函數(shù)等
字符串函數(shù)
字符串函數(shù)可以用來修改或運算字符串類型的數(shù)據(jù)乏冀,在MYSQL中比較重要蝶糯,也是最常用的函數(shù),在大量編程中使用的次數(shù)時最多的辆沦,常見的字符串函數(shù)如下圖所示
函數(shù)名 | 示例 | 函數(shù)功能 |
---|---|---|
CONCAT | SELECT CONCAT(‘今天’昼捍,‘晴天’) 返回:今天晴天 | 連接成字符串 |
LENGTH | LENGTH('hello world') 結(jié)果為11 | 返回字符串的長度 |
UPPER | Upper('abcd')返回ABCD | 將字符串轉(zhuǎn)為大寫 |
LTRIM | Ltrim(‘ abc’)返回為‘a(chǎn)bc’ | 去除字符串左邊的空格 |
RTRIM | Rtrim('abv') 返回為‘a(chǎn)bc’ | 去除字符串右邊的空格 |
TRIM | TRIM(‘ ABC ’)返回‘ABC’ | 去除字符串左右兩邊的空格 |
REPLACE | Peplace('abccd','c','x') 返回為‘a(chǎn)bxxd’ | 將abccd中c替換為x |
STRCMP | STRCMP(S1,S2) | 比較s1和s2识虚,如果s1等于s2,返回0妒茬,如果s1小于s2担锤,返回-1 |
SUBSTRIMG | SUBSTRING('Johnson' ,5乍钻,3)返回son | 從第五個位置開始截取長度為3的字符串 |
日期函數(shù)
日期和時間函數(shù)主要用來處理日期和時間值肛循,一般的日期函數(shù)除了使用DATE類型的參數(shù)外,也可以使用DATETIMR 或者 TIMESTAMP類型的函數(shù)银择,但會忽略這些值的時間部分多糠,相應(yīng)的,以TIME類型值為參數(shù)的函數(shù)浩考,可以接受TIMESTAMP類型的參數(shù)夹孔,但會忽略日期部分,許多日期函數(shù)可以同時接受數(shù)字和字符串兩種類型怀挠,
獲取當前日期析蝴、時間的函數(shù)
獲取當前日期+時間 函數(shù) | NOW() |
---|---|
獲取當前日期函數(shù) | CURDATE() |
獲得當前時間函數(shù) | CURRIME() |
獲取日期、時間指定部分的函數(shù)
函數(shù)名 | 函數(shù)功能 |
---|---|
MONTH(DATE) | 返回日期對應(yīng)的月份(數(shù)字類型绿淋,返回1到12的整數(shù)) |
MONTHNAME(DATE) | 返回日期對應(yīng)的月份(字符串闷畸,返回月份的英文全名,如:2月是February) |
DAYNAME(DATE) | 返回日期對應(yīng)的工作日的英文名稱 |
DAYOFWEEK(DATE) | 返回日期對應(yīng)的一周中的索引吞滞,1表示周日佑菩,2表示周一 |
WEEKDAY(DATE) | 返回日期對應(yīng)的工作日索引,0表示周一裁赠,1表示周二...6表示周六 |
WEEK(DATE) | 計算日期是一年中的第幾周殿漠, 范圍從1到52 |
DAYOFYEAR(DATE) | 計算日期是一年中的第幾天,范圍從1到366 |
DAYOFMONTH(DATE) | 計算日期是一個月中的第幾天佩捞,范圍從1到31 |
YEAR(DATE) | 返回日期中年份绞幌,范圍從1000到9999 |
QUARTER(DATE) | 返回日期對應(yīng)的一年中的季度值,范圍從1到4 |
MINUTE(TIME) | 返回時間的分鐘部分一忱,范圍從0到59 |
SECOND | 返回時間的秒部分莲蜘,范圍從0到59 |
計算日期和時間的函數(shù)
函數(shù)名 | 函數(shù)功能 |
---|---|
NOW() | 獲取當前日期+時間格式 |
DATE_ADD() | 為日期增加一個時間間隔 |
ADDDATE() | 可以用date_add()來替代,用法一致 |
DATE_SUB() | 為日期減少一個時間間隔 |
SUBDATE() | 可以用date_sub()來替代帘营,用法一致 |
ADDTIME() | 可以用date_add()來替代票渠,用法一致 |
DATEDLEF() | 日期時間相減函數(shù) |
數(shù)字函數(shù)
函數(shù)名 | 函數(shù)功能 |
---|---|
format(x,y) | 將一個數(shù)字x,保留y為小數(shù)芬迄,并且整數(shù)部分用逗號分隔千分位问顷,小數(shù)部分進行四舍五入 |
abs() | 求一個數(shù)的絕對值;absolute |
sqrt() | 求一個數(shù)的平方跟,sqrt是sqruar(平方),root(根)的縮寫 |
mod(x,y) | x除數(shù)杜窄,y被除數(shù)肠骆。結(jié)束是余數(shù) |
ceil() | 向上取整 |
floor() | 向下取整 |
rand() | 用來生成隨機數(shù)用的 |
truncate(x,y) | 不管四舍五入,直接把x的y位小數(shù)直接刪除 |
sign() | 返回當前結(jié)果得符號羞芍,如果是附屬返回-1哗戈,如果是0,返回0荷科,如果是整數(shù)唯咬,返回1 |
power() | 冪運算 |
round() | 將數(shù)值表達式四舍五入位指定精度 |
系統(tǒng)函數(shù)
函數(shù)名 | 函數(shù)功能 |
---|---|
DATABASE() | 返回當前數(shù)據(jù)庫名 |
BENCHMARK( count ,expr) | 將表達式expr重復運行count次 |
CONNECTTON_ID() | 飯hi當前客戶的連接ID |
FOUND_ROWS | 返回最后一個SELECT查詢就進行檢索的總行數(shù) |
VERSION() | 返回MySQL服務(wù)器的版本 |