一、數學函式
數學函式主要用於處理數字,包括整型、浮點數等。
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'
My程式設計修煉之道
最近想法有點多,已經大三末期的我思緒萬千,對於現在所在的路以及將來要走的路充滿著困惑於不解,但是有一點我是可以確定的,畢業之後我將要從事的行業必然是計算機行業。對於乙個沒有關係,沒有背景我來說,畢業的第一選擇必然是大學所學的專業了。大學裡辛辛苦苦學了四年的專業不能說丟就丟吧,畢竟人的一生能有幾個四年...
Mysql Workbench建模匯入MySQL中
我不知道其他人怎麼做。這個只是我自己摸索的做法。1.workbench中匯出sql檔案。file,export。一直下一步 當然也可以選一些東西 2.處理workbench出來的sql檔案。例如開頭一些set,結尾一些set貌似沒用。刪了。然後字元編碼也要處理一下,預設好像是latin1。這裡最好複...
MySQL WorkBench管理操作MySQL
一 mysql workbench mysql workbench提供dbas和developers乙個整合工具環境 1 資料庫設計和建模 2 sql開發 取代原來的mysql query browser 3 資料庫管理 取代原來的mysql administrator 2 安裝 3 入門資料庫例項...