运算符
算术运算符
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