MySQL資料庫中提供了很豐富的函式,MySQL函式包括數學函式、字串函式、日期和時間函式、條件判斷函式、系統資訊函式、加密函式、格式化函式等,通過這些函式,可以簡化用戶的操作,例如,字串連接函式可以很方便的將多個字串連接在一起,在這一講中將講解的內容包括:
數學函式
字串函式
日期和時間函式
條件判斷函式
系統資訊函式
加密函式
格式化函式
--數學函式
select abs(x); --回傳x的絕對值
select pi(); --回傳圓周率π,默認顯示6位小數
select sqrt(x); 回傳非負數的x的二次方根
select mod(x,y); --回傳x被y除后的余數
select ceil(x);=select ceiling; --回傳不小于x的最小整數
select floor(x) ; --回傳不大于x的最大整數
select round(x,y) ; --對x進行四舍五入,y指保留到小數點后幾位,若y為負值,則將保留到x到小數點左邊y位
select sign(x); --若x為正,則回傳1,x為負,則回傳-1,若x為0,則回傳0
select powr(x,y);==select power(x,y); --x的y次方
select exp(x); --回傳e的x次方
select log(x); --回傳x的自然對數,底數為e
select log10(x); --回傳以10為底的x的對數
select radians(x); -- 將角度值x轉化為弧度值
select degrees(x); --將弧度值x轉化為角度值
select sin(x),select asin(x) --前者回傳x的正弦,其中x為給定的弧度值;后者回傳x的反正弦值,x為正弦
select cos(x),select acos(x) --前者回傳x的余弦,其中x為給定的弧度值;后者回傳x的反余弦值,x為余弦
select tan(x),select atan(x) -- 前者回傳x的正切,其中x為給定的弧度值;后者回傳x的反正切值,x為正切
select cot(x) --回傳給定弧度值x的余切
字串函式
(1)CHAR_LENGTH(str)
計算字串字符個數
(2)CONCAT(s1,s2,...)
回傳連接引數產生的字串,一個或多個待拼接的內容,任意一個為NULL則回傳值為NULL
(3)CONCAT_WS(x,s1,s2,...)
回傳多個字串拼接之后的字串,每個字串之間有一個x
(4)INSERT(s1,x,len,s2)
回傳字串s1,其子字串起始于位置x,被字串s2取代len個字符
(5)LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str)
前兩者將str中的字母全部轉換成小寫,后兩者將字串中的字母全部轉換成大寫
(6)LEFT(s,n)、RIGHT(s,n)
前者回傳字串s從最左邊開始的n個字符,后者回傳字串s從最右邊開始的n個字符
(7)LPAD(s1,len,s2)、RPAD(s1,len,s2)
前者回傳s1,其左邊由字串s2填補到len字符長度,假如s1的長度大于len,則回傳值被縮短至len字符;前者回傳s1,其右邊由字串s2填補到len字符長度,假如s1的長度大于len,則回傳值被縮短至len字符
(8)LTRIM(s)、RTRIM(s)
前者回傳字串s,其左邊所有空格被洗掉;后者回傳字串s,其右邊所有空格被洗掉
(9)TRIM(s)
回傳字串s洗掉了兩邊空格之后的字串
(10)TRIM(s1 FROM s)
洗掉字串s兩端所有子字串s1,未指定s1的情況下則默認洗掉空格
(11)REPEAT(s,n)
回傳一個由重復字串s組成的字串,字串s的數目等于n
(12)SPACE(n)
回傳一個由n個空格組成的字串
(13)REPLACE(s,s1,s2)
回傳一個字串,用字串s2替代字串s中所有的字串s1
(14)STRCMP(s1,s2)
若s1和s2中所有的字串都相同,則回傳0;根據當前分類次序,第一個引數小于第二個則回傳-1,其他情況回傳1
(15)SUBSTRING(s,n,len)、MID(s,n,len)
兩個函式作用相同,從字串s中回傳一個第n個字符開始、長度為len的字串
(16)LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)
三個函式作用相同,回傳子字串str1在字串str中的開始位置(從第幾個字符開始)
(17)REVERSE(s)
將字串s反轉
(18)ELT(N,str1,str2,str3,str4,...)
回傳第N個字串
日期和時間函式
(1)CURDATE()、CURRENT_DATE()
將當前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值回傳,具體格式根據函式用在字串或是數字語境中而定
(2)CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()
這四個函式作用相同,回傳當前日期和時間值,格式為"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具體格式根據函式用在字串或數字語境中而定
(3)UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)
前者回傳一個格林尼治標準時間1970-01-01 00:00:00到現在的秒數,后者回傳一個格林尼治標準時間1970-01-01 00:00:00到指定時間的秒數
(4)FROM_UNIXTIME(date)
和UNIX_TIMESTAMP互為反函式,把UNIX時間戳轉換為普通格式的時間
(5)UTC_DATE()和UTC_TIME()
前者回傳當前UTC(世界標準時間)日期值,其格式為"YYYY-MM-DD"或"YYYYMMDD",后者回傳當前UTC時間值,其格式為"YYYY-MM-DD"或"YYYYMMDD",具體使用哪種取決于函式用在字串還是數字語境中
(6)MONTH(date)和MONTHNAME(date)
前者回傳指定日期中的月份,后者回傳指定日期中的月份的名稱
(7)DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d)
DAYNAME(d)回傳d對應的作業日的英文名稱,如Sunday、Monday等;DAYOFWEEK(d)回傳的對應一周中的索引,1表示周日、2表示周一;WEEKDAY(d)表示d對應的作業日索引,0表示周一,1表示周二
(8)WEEK(d)、WEEKOFYEAD(d)
前者計算日期d是一年中的第幾周,后者計算某一天位于一年中的第幾周
(9)DAYOFYEAR(d)、DAYOFMONTH(d)
前者回傳d是一年中的第幾天,后者回傳d是一月中的第幾天
(10)YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time)
YEAR(date)回傳指定日期對應的年份,范圍是1970~2069;QUARTER(date)回傳date對應一年中的季度,范圍是1~4;MINUTE(time)回傳time對應的分鐘數,范圍是0~59;SECOND(time)回傳制定時間的秒值
(11)EXTRACE(type FROM date)
從日期中提取一部分,type可以是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND
(12)TIME_TO_SEC(time)
回傳以轉換為秒的time引數,轉換公式為"3600*小時 + 60*分鐘 + 秒"
(13)SEC_TO_TIME()
和TIME_TO_SEC(time)互為反函式,將秒值轉換為時間格式
(14)DATE_ADD(date,INTERVAL expr type)、ADD_DATE(date,INTERVAL expr type)
回傳將起始時間加上expr type之后的時間,比如DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND)表示的就是把第一個時間加1秒
(15)DATE_SUB(date,INTERVAL expr type)、SUBDATE(date,INTERVAL expr type)
回傳將起始時間減去expr type之后的時間
(16)ADDTIME(date,expr)、SUBTIME(date,expr)
前者進行date的時間加操作,后者進行date的時間減操作
條件判斷函式
(1)IF(expr,v1,v2)
如果expr是TRUE則回傳v1,否則回傳v2
(2)IFNULL(v1,v2)
如果v1不為NULL,則回傳v1,否則回傳v2
(3)CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END
如果expr等于某個vn,則回傳對應位置THEN后面的結果,如果與所有值都不想等,則回傳ELSE后面的rn
系統資訊函式
(1)VERSION()
查看MySQL版本號
(2)CONNECTION_ID()
查看當前用戶的連接數
(3)USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()
查看當前被MySQL服務器驗證的用戶名和主機的組合,一般這幾個函式的回傳值是相同的
(4)CHARSET(str)
查看字串str使用的字符集
(5)COLLATION()
查看字串排列方式
加密函式
(1)PASSWORD(str)
從原明文密碼str計算并回傳加密后的字串密碼,注意這個函式的加密是單向的(不可逆),因此不應將它應用在個人的應用程式中而應該只在MySQL服務器的鑒定系統中使用
(2)MD5(str)
為字串算出一個MD5 128位元校驗和,改值以32位十六進制數字的二進制字串形式回傳
(3)ENCODE(str, pswd_str)
使用pswd_str作為密碼,加密str
(4)DECODE(crypt_str,pswd_str)
使用pswd_str作為密碼,解密加密字串crypt_str,crypt_str是由ENCODE函式回傳的字串
其他函式
(1)FORMAT(x,n)
將數字x格式化,并以四舍五入的方式保留小數點后n位,結果以字串形式回傳
(2)CONV(N,from_base,to_base)
不同進制數之間的轉換,回傳值為數值N的字串表示,由from_base進制轉換為to_base進制
(3)INET_ATON(expr)
給出一個作為字串的網路地址的點地址表示,回傳一個代表該地址數值的整數,地址可以使4或8位元
(4)INET_NTOA(expr)
給定一個數字網路地址(4或8位元),回傳作為字串的該地址的點地址表示
(5)BENCHMARK(count,expr)
重復執行count次運算式expr,它可以用于計算MySQL處理運算式的速度,結果值通常是0(0只是表示很快,并不是沒有速度),另一個作用是用它在MySQL客戶端內部報告陳述句執行的時間
(6)CONVERT(str USING charset)
使用字符集charset表示字串str
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/137142.html
標籤:Python
上一篇:python字串反射成變數
下一篇:Python--迭代器
