一些經常會用到的mysql函式彙總,算是乙個學習筆記吧,如果有錯的地方歡迎指正
每個函式都帶有簡單的說明和示例,僅供參考
不知道為什麼我mysql的upcase keywords不管用了,所以大小寫有點混亂
數字函式
abs(x)返回絕對值
select abs(-1);
**g(expression)返回某個欄位的平均值
select **g(balance)
from money;
greatest(expr1, expr2, expr3, …) 返回列表中的最大值
select greatest(1,2,3,4);
least(expr1, expr2, expr3, …) 返回列表中的最小值
select least(1,2,3,4);
max()返回最大值
select max(balance)
from money;
min()返回最小值
select min(balance)
from money;
rand()返回0到1的隨機浮點數
select rand();
round 四捨五入,第乙個引數是數字,第二個引數是保留位數,預設為0,表示取整,若為負數,則在整數字上四捨五入
select round(3.14159);
select round(3.14159,1);
select round(103.14159,0);
select round(103.14159,-1);
通過巢狀round和rand函式可以獲取指定範圍內的隨機數,例如:獲取1到10之間的隨機整數:
select round(rand() * 10);
sum()求和
select sum(balance)
from money;
count()計數
select count(balance)
from money;
注意,max,min,count,**g,sum均為聚合函式,一般與group by 子句一起使用
ceil 向上取整,返回大於等於該引數的最小整數
select ceil(3.14159);
floor 向下取整,返回小於等於該引數的最大整數
select floor(3.14159);
truncate 截斷,第乙個引數為原數字,第二個引數為保留位數
select truncate(3.14159,2);
mod 取模,即取餘數,第乙個引數為被除數,第二個引數為除數
select mod(10,3);
字元函式
length 獲取引數值的位元組個數,注意,乙個英文本母標點以及數字是乙個位元組,乙個漢字以及中文標點是3個位元組
select length('hello!1');
select length('資料庫!');
concat 將多個字串拼接,中間用逗號分隔
select concat('my','sql');
select concat('資料庫','查詢');
upper 將引數所有字母轉換為大寫,數字及中文不報錯,返回原引數值,但是無意義
select upper('mysql');
lower 將引數所有字母轉換為小寫
select lower('mysql');
substr
索引從指定位置開始,返回指定位置及其後指定字元長度的字串;
第乙個引數為需要索引的字串,必選;第二個引數為指定索引開始位置,必選,若為負數,則表示從字串末尾指定位置開始索引;
第三個引數為返回字串的字元長度(包含索引開始位置),可選,若省略則返回開始位置及其後所有字元
select substr('mysql',1);
select substr('mysql',1,2);
select substr('mysql',-2,2);
instr 第乙個引數與第二個引數均為字串,返回第二個引數在第乙個引數中第一次出現的位置,若未出現,返回0
select instr('mysql','sq');
select instr('mysql','python');
select instr('mysql','q',1,1);
trim 去除字串兩端的空格 ,ltrim去除左端空格,rtrim去除右端空格
select trim(' mysql ');
select rtrim(' mysql ');
select ltrim(' mysql ');
lpad
用指定字串填充原字串左邊,其中第乙個引數為原字串,
第二個引數為填充後字串整體長度,第三個引數為填充字串,rpad同理
注意,若第二個引數小於原字串長度,則該函式的實現功能變為擷取字串
select lpad('mysql',10,'');
select rpad('mysql',10,'');
select lpad(rpad('mysql',10,''),15,'');
select lpad('mysql',2,'*');
replace
將所有指定的字串替換
第乙個引數為原字串,第二個引數為被替換的字串,第三個引數為替換字串
select replace('mysql','sq','*');
find_in_set(s1,s2)返回在字串s2中與s1匹配的字串的位置,注意,s2需要被逗號分割
select find_in_set('c','a,b,c,d,e,f');
format()函式用於格式化乙個數字,並以字串的形式返回
第乙個引數為需要被格式化的數字,第二個引數可選,表示保留的小數字數,可省略,省略即取整,為負數無效果,也是取整
select format(3.14,1);
select format(3.14);
insert(s1,x,len,s2)字串 s2 替換 s1 的 x 位置開始長度為 len 的字串
select insert('@126.com',2,3,'qq');
locate(s1,s)從字串 s 中獲取 s1 的開始位置
select locate('數','mysql資料庫');
日期函式
now返回當前日期和時間
select now();
curdate
返回當前日期
select curdate();
curtime
返回當前時間,不包含日期
select curtime();
date()從格式日期中返回日期
select date(now());
year()從格式日期中返回年份
select year(now());
month()從格式日期中返回月份
select month(now());
day()從格式日期中返回日
select day(now());
time()從格式日期中返回時間
select time(now());
monthname,dayname
返回月份、日(是星期幾)的英文名
select monthname(now());
select dayname(now());
datediff(d1,d2) 計算兩個日期相隔的天數,d1-d2
select datediff('2020-01-01','2019-01-01');
date_format按表示式的要求顯示日期
select date_format(now(),'%y年%m月%d日');
str_to_date
將字串轉換為指定格式的日期
select str_to_date('2023年1月1日','%y年%m月%d日');
Mysql常用函式彙總
處理比較複雜的資料時,為了減少 可以使用一些mysql的一些函式,例如使用聚合函式做資料統計。如果expr1為true,返回expr2,否則返回expr3 如果expr1不是null,ifnull 返回expr1,否則它返回expr2。用於資料的四捨五入,round num 相當於round num...
mysql 常用函式彙總
目錄長度 length char length 字串拼接 concat concat ws group concat 記錄一下,持續更新,不一定全。字段長度 引數1個,可以填欄位名 字串長度 裡面引數可以填欄位名 concat裡面可以傳多個引數,會把它們拼接到一起,返回乙個完整的字串。我常用的語句是...
MySql常用函式彙總(一)
1 保留兩位小數 round x,d 用於資料的四捨五入,x 值 d 保留小數2 負數轉正數 select abs 3 5 3 去除資料庫中小數點後多餘的0 select 0 cast t.loan rate as char 0 cast t.current period as char 0 cas...