運算符
算術運算符
MySQL 支持的算術運算符包括加、減、乘、除和模運算。
在除法運算和模運算中,若是除數爲0,將是非法除數,返回結果爲NULL。函數
比較運算符
當使用SELECT語句進行查詢時, MySQL容許用戶對錶達式的左邊操做數和右邊操做數進行比較,比較結果爲真,則返回1,爲假則返回 0,比較結果不肯定則返回NULL。spa
符號 |
描述 |
備註 |
= |
等於 |
|
<>, != |
不等於 |
|
> |
大於 |
|
< |
小於 |
|
<= |
小於 |
|
>= |
大於等於 |
|
BETWEEN |
在兩值之間 |
>=min&&<=max |
NOT BETWEEN |
不在兩值之間 |
|
IN |
在集合中 |
|
NOT IN |
不在集合中 |
|
<=> |
嚴格比較兩個NULL值是否相等 |
兩個操做碼均爲NULL時,其所得值爲1;而當一個操做碼爲NULL時,其所得值爲0 |
LIKE |
簡單模式匹配 |
|
REGEXP |
正則式匹配 |
|
IS NULL |
爲空 |
|
IS NOT NULL |
不爲空 |
|
- 如有一個或兩個參數爲 NULL,除非NULL <=> NULL 等運算符,則比較運算的結果爲NULL。
- 若同一個比較運算中的兩個參數都是字符串,則按照字符串進行比較。
- 若兩個參數均爲整數,則按照整數進行比較。
邏輯運算符
運算符 |
做用 |
AND&& |
邏輯與 |
OR || |
邏輯或 |
NOT ! |
邏輯非 |
XOR |
異或 |
位運算符
運算符 |
做用 |
& |
位與 |
| |
位或 |
~ |
位取反 |
^ |
位異或 |
>
|
右移 |
<< |
左移 |
經常使用函數
字符串函數
函數 |
說明 |
備註 |
ASCII(char) |
返回字符的ASCII碼值 |
|
BIT_LENGTH(str) |
返回字符串的比特長度 |
|
LENGTH(s) |
返回字符串str中的字符數 |
|
CONCAT(s1,s2…,sn) |
將s1,s2…,sn鏈接成字符串 |
任何字符串與NULL進行鏈接的結果都將是NULL |
CONCAT_WS(sep,s1,s2…,sn) |
將s1,s2…,sn鏈接成字符串,並用sep字符間隔 |
|
LOWER(str) UPPER(str) |
返回將字符串str中全部字符改變爲小/大寫後的結果 |
|
LEFT(str,x) RIGHT(str,x) |
返回字符串str中最左/右邊的x個字符 |
若是第二個參數是NULL,那麼將不返回任何字符串。 |
LTRIM(str) |
從字符串str中切掉開頭的空格 |
|
REPEAT(str,srchstr,rplcstr) |
返回字符串str重複x次的結果 |
|
REVERSE(str) |
返回顛倒字符串str的結果 |
|
RTRIM(str) |
返回字符串str尾部的空格 |
|
STRCMP(s1,s2) |
比較字符串s1和s2 |
|
TRIM(str) |
去除字符串首部和尾部的全部空格 |
|
數值函數
函數 |
說明 |
ABS(x) |
返回x的絕對值 |
BIN(x) |
返回x的二進制(OCT返回八進制,HEX返回十六進制) |
CEILING(x) |
返回大於x的最小整數值 |
FLOOR(x) |
返回小於x的最大整數值 |
MOD(x,y) |
返回x/y的模(餘數) |
PI() |
返回pi的值(圓周率) |
RAND() |
返回0到1內的隨機值,能夠經過提供一個參數(種子)使RAND()隨機數生成器生成一個指定的值。 |
ROUND(x,y) |
返回參數x的四捨五入的有y位小數的值 |
日期時間函數
函數 |
說明 |
CURRENT_DATE() |
返回當前的日期 |
CURRENT_TIME() |
返回當前的時間 |
DATE_ADD(date,INTERVAL int keyword) |
返回日期date加上間隔時間int的結果(int必須按照關鍵字進行格式化),如:SELECT DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH); |
DATE_FORMAT(date,fmt) |
依照指定的fmt格式格式化日期date值 |
DATE_SUB(date,INTERVAL int keyword) |
返回日期date加上間隔時間int的結果(int必須按照關鍵字進行格式化),如:SELECT DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH); |
DAYOFWEEK(date) |
返回date所表明的一星期中的第幾天(1~7) |
DAYOFMONTH(date) |
返回date是一個月的第幾天(1~31) |
DAYOFYEAR(date) |
返回date是一年的第幾天(1~366) |
FROM_UNIXTIME(ts,fmt) |
根據指定的fmt格式,格式化UNIX時間戳ts |
UNIX_TIMESTAMP(date) |
返回日期date的UNIX時間戳 |
HOUR(time) |
返回time的小時值(0~23) |
MINUTE(time) |
返回time的分鐘值(0~59) |
MONTH(date) |
返回date的月份值(1~12) |
NOW() |
返回當前的日期和時間 |
WEEK(date) |
返回日期date爲一年中第幾周(0~53) |
YEAR(date) |
返回日期date的年份(1000~9999) |
流程函數
- CASE WHEN[test1] THEN [result1]…ELSE [default] END 若是testN是真,則返回resultN,不然返回default
- CASE [test] WHEN[val1] THEN [result]…ELSE [default] END 若是test和valN相等,則返回resultN,不然返回default
- IF(test,t,f) 若是test是真,返回t;不然返回 f
- IFNULL(arg1,arg2) 若是arg1不是空,返回arg1,不然返回arg2