第1章:MySQL基础
1.1运算符
1.1.1 算术运算符
算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。
算术运算符
符号 作用 符号 作用
+ 加法运算 % 求余运算
- 减法运算 DIV 除法运算
* 乘法运算 MOD 求余运算,返回余数
/ 除法运算
加(+)、减(-)和乘(*)可以同时运算多个操作数。除号(/)和求余运算符(%)也可以同时计算多个操作数,但不建议使用。DIV和MOD这两个运算符只有两个参数。进行除法和求余的运算时,如果x2参数是0,计算结果将是空值(NULL)。
1.1.2 比较运算符
比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常使用比较运算符。比较运算符可以用于判断表中的哪些记录是符合条件的。比较运算符的符号、名称和应用示例如下表所示。
比较运算符
符号 名称 示例 符号 名称 示例
= 等于 id=5 is not null n/a id is not null
> 大于 id>5 between and n/a id between 1 and 15
< 小于 id<5 in n/a id in (3,4,5)
>= 大于或等于 id>=5 not in n/a name not in (shi,li)
<= 小于或等于 id<=5 like 匹配模式 name like ('shi%')
!=或<> 不等于 id!=5 not like 匹配模式 name not like ('shi%')
is null n/a id IS NULL regexp 常规表达式 name 正规表达式
下面对几种较常用的比较运算符进行详解
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。
5、运算符BETWEEN AND
BETWEEN AND用于判断数据是否在某个取值返回内,其表达式如下。
x1 BETWEEN m AND n
如果x1大于或等于m,且小于或等于n,结果将返回1;否则,将返回0。
6、运算符IN
IN用于判断数据是否在某个集合中,其表达式如下。
x1 IN(值1,值2,值3,...,值n)
如果x1等于值1到值n中的任何一个值,则结果将返回1;否则,结果将返回0。
7、运算符LIKE
LIKE用来匹配字符串,其表达式如下。
x1 LIKE s1
如果x1与字符串s1匹配,结果将返回1;否则,返回0。
8、运算符REGEXP
REGEXP同样用于匹配字符串,但其使用的是正则表达式进行匹配,其表达式如下。
1.1.3 逻辑运算符
逻辑运算符用来判断表达式的真假。如果表达式是真,则结果返回1;如果表达式是假,则结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持4种逻辑运算符,分别是与、或、非和异或。
逻辑运算符
符号 作用 符号 作用
&&或AND 与 !或NOT 非
||或OR 或 XOR 异或
1、与运算
'&&'或'AND'是与运算的两种表达方式。如果所有数据不为0且不为空值,结果返回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表示异或运算。只要其中任何一个操作数据为NULL,结果就返回NULL;如果两个操作数都是非0值,或者都是0,则结果返回0;如果一个为0,另一个为非0值,则结果返回1。
1.1.4 运算符的优先级
由于在实际应用中可能需要同时使用多个运算符,因此必须考虑运算符的运算顺序。
MySQL运算符使用的优先级,按照从高到低、从左到右的级别进行运算操作。
MySQL运算符的优先级
优先级 运算符
1 !
2 ~
3 ^
4 *,/,DIV,%,MOD<