常用MySQL函式彙總

2022-09-10 23:42:30 字數 3948 閱讀 2137

一些經常會用到的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...