MySQL常用函式

2022-08-09 04:57:14 字數 4987 閱讀 6723

一、數學函式

數學函式主要用於處理數字,包括整型、浮點數等。

abs(x)

返回x的絕對值  

select abs(-1) -- 返回1

ceil(x),ceiling(x)

返回大於或等於x的最小整數  

select ceil(1.5) -- 返回2

floor(x)

返回小於或等於x的最大整數  

select floor(1.5) -- 返回1

rand()

返回0->1的隨機數  

select rand() --0.93099315644334

rand(x)

返回0->1的隨機數,x值相同時返回的隨機數相同  

select rand(2) --1.5865798029924

pi()

返回圓周率(3.141593)  

select pi() --3.141593

truncate(x,y)

返回數值x保留到小數點後y位的值(與round最大的區別是不會進行四捨五入)  

select truncate(1.23456,3) -- 1.234

round(x,y)

保留x小數點後y位的值,但截斷時要進行四捨五入  

select round(1.23456,3) -- 1.235

pow(x,y).power(x,y)

返回x的y次方  

select pow(2,3) -- 8

sqrt(x)

返回x的平方根  

select sqrt(25) -- 5

exp(x)

返回e的x次方  

select exp(3) -- 20.085536923188

mod(x,y)

返回x除以y以後的餘數  

select mod(5,2) -- 1

二、字串函式

字串函式是mysql中最常用的一類函式,字串函式主要用於處理表中的字串。

函式 說明

char_length(s)

返回字串s的字元數

select char_length('你好123') -- 5

concat(s1,s2,...)

將字串s1,s2等多個字串合併為乙個字串

select concat('12','34') -- 1234

concat_ws(x,s1,s2,...)

同concat(s1,s2,...)函式,但是每個字串直接要加上x

select concat_ws('@','12','34') -- 12@34

insert(s1,x,len,s2)

將字串s2替換s1的x位置開始長度為len的字串

select insert('12345',1,3,'abc') -- abc45

upper(s),ucaase(s)

將字串s的所有字母變成大寫字母

select upper('abc') -- abc

lower(s),lcase(s)

將字串s的所有字母變成小寫字母

select lower('abc') -- abc

left(s,n)

返回字串s的前n個字元

select left('abcde',2) -- ab

right(s,n)

返回字串s的後n個字元

select right('abcde',2) -- de

ltrim(s) 去掉字串s開始處的空格

rtrim(s) 去掉字串s結尾處的空格

trim(s) 去掉字串s開始和結尾處的空格

select trim('@' from '@@abc@@') -- abc

repeat(s,n)

將字串s重複n次

select repeat('ab',3) -- ababab

space(n) 返回n個空格

replace(s,s1,s2)

將字串s2替代字串s中的字串s1

select replace('abca','a','x') --xbcx

strcmp(s1,s2) 比較字串s1和s2

substring(s,n,len) 獲取從字串s中的第n個位置開始長度為len的字串

locate(s1,s),position(s1 in s)

從字串s中獲取s1的開始位置

select locate('b', 'abc') -- 2

reverse(s)

將字串s的順序反過來

select reverse('abc') -- cba

field(s,s1,s2...)

返回第乙個與字串s匹配的字串位置

select field('c','a','b','c') -- 3

三、日期時間函式

mysql的日期和時間函式主要用於處理日期時間。

函式 說明

curdate(),current_date()

返回當前日期

select curdate()

->2014-12-17

curtime(),current_time

返回當前時間

select curtime()

->15:59:02

now(),current_timestamp(),localtime(),

sysdate(),localtimestamp()

返回當前日期和時間

select now()

->2014-12-17 15:59:02

year(d),

month(d)

day(d)

返回日期d中的月份值,1->12

select month('2011-11-11 11:11:11')

->11

monthname(d)

返回日期當中的月份名稱,如janyary

select monthname('2011-11-11 11:11:11')

->november

dayname(d)

返回日期d是星期幾,如monday,tuesday

select dayname('2011-11-11 11:11:11')

->friday

dayofweek(d)

日期d今天是星期幾,1星期日,2星期一

select dayofweek('2011-11-11 11:11:11')

->6

weekday(d)

日期d今天是星期幾,

0表示星期一,1表示星期二

week(d),weekofyear(d)

計算日期d是本年的第幾個星期,範圍是0->53

select week('2011-11-11 11:11:11')

->45

dayofyear(d)

計算日期d是本年的第幾天

select dayofyear('2011-11-11 11:11:11')

->315

dayofmonth(d)

計算日期d是本月的第幾天

select dayofmonth('2011-11-11 11:11:11')

->11

quarter(d)

返回日期d是第幾季節,返回1->4

select quarter('2011-11-11 11:11:11')

->4

hour(t)

返回t中的小時值

select hour('1:2:3')

->1

minute(t)

返回t中的分鐘值

select minute('1:2:3')

->2

second(t)

返回t中的秒鐘值

select second('1:2:3')

->3

四、系統資訊函式

系統資訊函式用來查詢mysql資料庫的系統資訊。

函式 作用

version()

返回資料庫的版本號

select version()

->5.0.67-community-nt

connection_id() 返回伺服器的連線數

database()、schema 返回當前資料庫名

user()、system_user()

返回當前使用者

五、加密函式

加密函式是mysql用來對資料進行加密的函式。

1、password(str)

該函式可以對字串str進行加密,一般情況下,password(str)用於給使用者的密碼加密。

select password('123')

->*23ae809ddacaf96af0fd78ed04b6a265e05aa257

2、md5

md5(str)函式可以對字串str進行雜湊,可以用於一些普通的不需要解密的資料加密。

select md5('123')

->202cb962ac59075b964b07152d234b70

3、encode(str,pswd_str)與decode(crypt_str,pswd_str)

encode函式可以使用加密密碼pswd_str來加密字串str,加密結果是二進位制數,需要使用blob型別的字段儲存。該函式與decode是一對,需要同樣的密碼才能夠解密。

select encode('123','xxoo')

->;vx

select decode(';vx','xxoo')

->123

insert into login values('lch','alvin',encode('123','xxoo'),'50')

select name,decode(password,'xxoo') from login where username='lch'

mysql 常用函式迴圈 mysql 常用函式

mysql 常用函式 數字函式 ceiling x 返回大於x的最小整數值 floor x 返回小於x的最大整數值 truncate x,y 返回數字x截短為y位小數的結果 僅僅只是截斷,不會進行四捨五入計算 聚合函式 group concat col 返回由屬於一組的列值連線組合而成的結果 字串函...

mysql常用函式哪些 MySQL常用函式彙總

數學類函式 ceil x ceilin x 進一取整 floor x 捨掉小數部分 round x,y 四捨五入 保留y位小數 mod x,y x除以y以後的餘數 abs x 取x的絕對值 power x,y pow x,y 冪運算 x的y次冪 pi 圓周率 rand 或者rand x 0 1之間的...

mysql常用轉換函式 Mysql常用函式

ip位址轉換 inet aton 將ip位址轉換成數字型 inet ntoa 將數字型轉換成ip位址 phpip位址相互轉換 ip 轉整型 ip2long 133.114.56.135 轉整型後帶符號 2056111993 bindec decbin ip2long 133.114.56.135 轉...