mysql函式總結

2022-08-20 09:21:08 字數 4986 閱讀 2263

一、數學函式

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

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函式總結

1.字元函式 length 獲取位元組長度 unicode 固定位元組,乙個字母和乙個漢字都占用2個位元組 gbk 資格字母佔乙個位元組,乙個漢子佔2個位元組 utf 8 乙個字母佔乙個位元組,乙個漢子佔三個位元組 concat 拼接字元 select concat hello last name ...

mysql日期函式總結

select from product as r1 join select round rand select max product id from product as product id as r2 where r1.product id r2.product id order by r1....

MySQL 常用函式總結

直接開啟幕布檢視食用效果更佳 mysql 常用函式 數學函式 ceil 進一取整 floor 捨一取整 round 四捨五入 truncate 例 truncate 3.14159,3 3.141,擷取小數點後 3 位,不進行四捨五入 mod 例 mod 5,2 1,5 對 2 取余為1 abs 取...