MySQL入门到精通(七)

                                             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 运算符的优先级

                      

猜你喜欢

转载自blog.csdn.net/weixin_42257895/article/details/80907924