MySQL基础
7.1 运算符
7.1.1 算术运算符
算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括:加、减、乘、除、求余。
符号 | 作用 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 求余运算 |
DIV | 除法运算,返回商。同“/” |
MOD | 求余运算,返回余数。同“%” |
说明:加(+),减(-)和乘(*)可以同时运算多个操作符。除号(/)和求余运算符(%)也可以同时计算多个操作数,但是这两个符号计算多个操作符不太好。DIV和MOD这两个运算符只有两个参数。进行除法和求余的运算时,如果x2参数是0时,计算结果将是空值(NULL)。
7.1.2 比较运算符
比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。
运算符 | 作用 |
---|---|
= | 等于 |
<=> | 安全的等于 |
<>或!= | 不等于 |
<= | 小于等于 |
>= | 大于等于 |
> | 大于 |
IS NULL | 判断一个值是否为NULL |
IS NOT NULL | 判断一个值是否不为NULL |
LEAST | 在有两个或多个参数时,返回最小值 |
GREATEST | 当有2或多个参数时,返回最大值 |
BETWEEN AND | 判断一个值是否落在两个值之间 |
NOT LIKE | 通配符匹配 |
IN | 判断一个值是否落在两个值之间 |
NOT IN | 判断一个值不是IN列表中的任意一个值 |
LIKE | 通配符匹配 |
REGEXP | 正则表达式匹配 |
下面对几种较常用的比较运算符进行详解。
1.运算符“=”
“=”用来判断数字、字符串和表达式等是否相等。如果相等,返回1,否则返回0。
说明:在运用“=”运算符判断两个字符是否相同时,数据库系统都是根据字符的ASCII码进行判断的。如果ASCII码相等,则表示这两个字符相同。如果ASCII码不相等,则表示这两个字符不相同。注意,空值(NULL)不能使用“=”来判断。
2.运算符“<>”和“!=”
“<>”和“!=”用来判断数字、字符串、表达式等是否不相等。如果不相等,则返回1;否则,返回0。这两个符号也不能用来判断空值(NULL)。
3.运算符“>”
“>”用来判断左边的操作数是否大于右边的操作数。如果大于,返回1;否则,返回0。同样,空值(NULL)不能使用“>”来判断。
4.运算符“IS NULL”
“IS NULL”用来判断操作数是否为空值(NULL)。操作数为NULL时,结果返回1;否则,返回0。IS NOT NULL刚好与IS NULL相反。
说明:“=”、“<>”、“!=”、“>”、“>=”、“<”、“<=”等运算符都不能用来判断空值(NULL)。一旦使用,结果将返回NULL。如果要判断一个值是否为空值,可以使用IS NULL和IS NOT NULL来判断。注意:NULL和'NULL'是不同的,前者表示为空值,后者表示一个由4个字母组成的字符串。
5.运算符“BETWEEN AND”
“BETWEEN AND”用于判断数据是否在某个取值范围内,其表达式如下:
x1 BETWEEN m AND n
如果x1大于等于m,且小于等于n,结果将返回1,否则将返回0。
6.运算符“IN”
“IN”用于判断数据是否存在于某个集合中,其表达式如下:
x1 IN(值1,值2,……,值n)
如果x1等于值1到值n中的任何一个值,结果将返回1。如果不是,结果将返回0。
7.运算符“LIKE”
“LIKE”用来匹配字符串,其表达式如下:
x1 LIKE s1
如果x1与字符串s1匹配,结果将返回1。否则返回0。
8.运算符“REGEXP”
REGEXP”同样用于匹配字符串,但其使用的是正则表达式进行匹配,其表达式格式如下:
x1 REGEXP'匹配方式'
如果x1满足匹配方式,结果将返回1;否则将返回0。
说明:使用REGEXP运算符匹配字符串,其使用方法非常简单。REGEXP运算符经常与“^”、“$”和“.”一起使用。“^”用来匹配字符串的开始部分;“$”用来匹配字符串的结尾部分;“.”用来代表字符串中的一个字符。
7.1.3 逻辑运算符
逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回1。如果表达式是假,结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持4种逻辑运算符,分别是与、或、非和异或。
符号 | 作用 |
&&或AND | 与 |
||或OR | 或 |
!或NOT | 非 |
XOR | 异或 |
1.“与”运算
“&&”或者“AND”是“与”运算的两种表达方式。如果所有数据不为0且不为空值(NULL),则结果返回1;如果存在任何一个数据为0,则结果返回0;如果存在一个数据为NULL且没有数据为0,则结果返回NULL。“与”运算符支持多个数据同时进行运算。
2.“或”运算
“||”或者“OR”表示“或”运算。所有数据中存在任何一个数据为非0的数字时,结果返回1;如果数据中不包含非0的数字,但包含NULL时,结果返回NULL;如果操作数中只有0时,结果返回0。“或”运算符“||”可以同时操作多个数据。
3.“非”运算
“!”或者NOT表示“非”运算。通过“非”运算,将返回与操作数据相反的结果。如果操作数据是非0的数字,结果返回0;如果操作数据是0,结果返回1;如果操作数据是NULL,结果返回NULL。
4.“异或”运算
XOR表示“异或”运算。当其中一个表达式是真而另外一个表达式是假时,该表达式返回的结果才是真;当两个表达式的计算结果都是真或者都是假时,则返回的结果为假。
7.1.4 位运算符
位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。MySQL中支持6种位运算符,分别是:按位与、按位或、按位取反、按位异或、按位左移和按位右移。
7.1.5 运算符的优先级