數據庫經常使用的函數

經常使用函數數據庫

 

1、數學函數服務器

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

 

ABS(x)      加密

返回x的絕對值  code

 

SELECT ABS(-1) -- 返回1md5

 

CEIL(x),CEILING(x)  字符串

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

 

SELECT CEIL(1.5) -- 返回2it

 

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

 

 

 

2、字符串函數

  字符串函數是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

 

 

 

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

 

 

 

 

4、系統信息函數

  系統信息函數用來查詢MySQL數據庫的系統信息。

 

函數         做用

VERSION()       

返回數據庫的版本號

 

SELECT VERSION()

->5.0.67-community-nt

 

CONNECTION_ID()          返回服務器的鏈接數

DATABASE()、SCHEMA   返回當前數據庫名

USER()、SYSTEM_USER()

返回當前用戶

 

5、加密函數

  加密函數是MySQL用來對數據進行加密的函數。

 

  一、PASSWORD(str)

 

  該函數能夠對字符串str進行加密,通常狀況下,PASSWORD(str)用於給用戶的密碼加密。

 

SELECT PASSWORD('123')

    ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

  二、MD5

 

  MD5(str)函數能夠對字符串str進行散列,能夠用於一些普通的不須要解密的數據加密。

 

SELECT md5('123')

    ->202cb962ac59075b964b07152d234b70

 

  三、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'

相關文章
相關標籤/搜索