运算符

算术运算符

1、加:+、减:-

(1)一个整数类型的值对整数进行加法和减法操作,结果还是一个整数

(2)一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数

(3)加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的

(4)在 Java 中,+ 的左右两边如果有字符串,那么表示字符串的拼接

(5)在 MySQL 中,+ 只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按 0 计算,MySQL中字符串拼接要使用字符串函数 CONCAT() 实现

2.乘:*、除:/ 或 DIV

(1)一个数乘以整数 1,和除以整数 1 后,仍得原数

(2)一个数乘以浮点数 1,和除以浮点数 1 后,变成浮点数,数值与原数相等

(3)一个数除以整数后,不管是否能除尽,结果都为一个浮点数

(4)一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后 4 位

(5)乘法和除法的优先级相同,进行先乘后除操作与先除后乘操作,得出的结果相同

(6)在数学运算中,0 不能用作除数,在 MySQL 中,一个数除以 0 为 NULL

3.取模:% 或 MOD

(1)a % b = a - a / b * b

 

比较运算符

1、对表达式左边的操作数和右边的操作数进行比较,比较的结果为真,则返回 1;比较的结果为假,则返回 0;其他情况,则返回 NULL

2、比较运算符常用作 SELECT 查询语句的条件,返回符合条件的结果记录

3、等号运算符

(1)=

(2)判断等号两边的值、字符串或表达式是否相等,如果相等,则返回 1;不相等,则返回 0

(3)如果等号两边的值、字符串或表达式都为字符串,则 MySQL 会按照字符串进行比较,其比较的是每个字符串中字符的 ANSI 编码是否相等

(4)如果等号两边的值都是整数,则 MySQL 会按照整数来比较两个值的大小

(5)如果等号两边的值一个是整数,另一个是字符串,则 MySQL 会将字符串转化为数字进行比较

(6)如果等号两边的值、字符串或表达式中有一个为 NULL,则比较结果为 NULL

(7)= 可用于子查询,但子查询的结果必须为唯一值,子查询结果为多个知时,使用 IN

4、安全等于运算符

(1)<=>

(2)可以用来对 NULL 进行判断:在两个操作数均为 NULL 时,其返回值为 1;当一个操作数为 NULL 时,其返回值为 0

(3)其他返回结果与等于运算符相同

5、不等于运算符

(1)<> 或 !=

(2)判断两边的数字、字符串或者表达式的值是否不相等

(3)如果不相等,则返回 1;相等,则返回 0

(4)不能判断 NULL 值,如果两边的值有任意一个为 NULL,或两边都为 NULL,则结果为 NULL

 

非符号类型的运算符

1、空运算符

(1)IS NULL 或 ISNULL

(2)判断一个值是否为 NULL

(3)如果为 NULL,则返回 1,否则返回 0

2、非空运算符

(1)IS NOT NULL

(2)判断一个值是否不为 NULL

(3)如果不为 NULL,则返回 1,否则返回 0

3、最小值运算符

(1)语法格式为:LEAST(值1, 值2, ..., 值n)

(2)值n:表示参数列表中有 n 个值,在有两个或多个参数的情况下,返回最小值

(3)当参数是整数或浮点数时,LEAST 将返回其中最小的值

(4)当参数为字符串时,返回字母表中顺序最靠前的字符

(5)当比较值列表中有 NULL 时,不能判断大小,返回值为 NULL

4、最大值运算符

(1)语法格式为:GREATEST(值1, 值2, ..., 值n)

(2)值n:表示参数列表中有 n 个值

(3)当有两个或多个参数时,返回值为最大值

(4)假如任意一个自变量为 NULL,则 GREATEST() 的返回值为 NULL

(5)当参数中是整数或者浮点数时,GREATEST 将返回其中最大的值

(6)当参数为字符串时,返回字母表中顺序最靠后的字符

(7)当比较值列表中有 NULL 时,不能判断大小,返回值为 NULL

5、BETWEEN AND 运算符

(1)格式通常为:SELECT D FROM TABLE WHERE C BETWEEN A AND B

(2)当 C 大于或等于 A,并且 C 小于或等于 B 时,结果为 1,否则结果为 0

6、IN 运算符

(1)判断给定的值,是否是 IN 列表中的一个值,如果是,则返回 1,否则返回 0

(2)如果给定的值为 NULL,或者 IN 列表中存在 NULL,则结果为 NULL

7、NOT IN 运算符

(1)判断给定的值,是否不是 IN 列表中的一个值

(2)如果不是IN列表中的一个值,则返回 1,否则返回 0

8、LIKE 运算符

(1)匹配字符串,通常用于模糊匹配

(2)如果满足条件,则返回 1,否则返回 0

(3)如果给定的值,或匹配条件为 NULL,则返回结果为 NULL

(4)%:匹配 0 个或多个任意字符

(5)_:只能匹配一个任意字符

(6)[ ]:字符列中的任何单一字符

(7)[! ] 或 [^ ]:不在字符列中的任何单一字符

(8)使用转义符,避免特殊符号,例如: LIKE 'IT_%' ESCAPE ''、LIKE 'IT$_%',如果使用 \ 表示转义,要省略 ESCAPE,如果不是 \,则要加上 ESCAPE

9、REGEXP 运算符

(1)匹配字符串

(2)语法格式为:expr REGEXP 匹配条件

(3)若 expr 满足匹配条件,返回 1;如果不满足,则返回 0

(4)若 expr 或匹配条件任意一个为 NULL,则结果为 NULL

(5)^:匹配以该字符后面的字符开头的字符串

(6)$:匹配以该字符前面的字符结尾的字符串

(7). 匹配任何一个单字符

(8)[ ]:匹配在方括号内的任何字符,如:[abc]”匹配“a”或“b”或“c”。为了命名字符的范围,使用 -,[a-z] 匹配任何字母,[0-9] 匹配任何数字

(9)*:匹配零个或多个在它前面的字符,如:x* 匹配任何数量的 x 字符,[0-9]* 匹配任何数量的数字,* 匹配任何数量的任何字符

 

逻辑运算符

1、判断表达式的真假,在 MySQL 中,逻辑运算符的返回结果为 1、0 或 NULL

2、逻辑非运算符

(1)NOT 或 !

(2)当给定的值为 0 时,返回 1

(3)当给定的值为非 0 时,返回 0

(4)当给定的值为 NULL 时,返回 NULL

3、逻辑与运算符

(1)AND 或 &&

(2)当给定的所有值均为非 0 值,并且都不为 NULL 时,返回 1

(3)当给定的一个值,或多个值为 0 时,则返回 0,否则返回 NULL

4、逻辑或运算符

(1)OR 或 ||

(2)当给定的值都不为 NULL,并且任何一个值为非 0 值时,则返回 1,否则返回 0

(3)当一个值为 NULL,并且另一个值为非 0 值时,返回 1,否则返回 NULL

(4)当两个值都为 NULL 时,返回 NULL

5、OR 可以和 AND 一起使用,但 AND 优先级高于 OR,因此先对 AND 两边的操作数进行操作,再与 OR 中的操作数结合

6、逻辑异或运算符

(1)XOR

(2)当给定的值中任意一个值为 NULL 时,则返回 NULL

(3)当两个非 NULL 的值都是 0,或都不等于 0 时,则返回 0

(4)若一个值为 0,另一个值不为 0 时,则返回 1 

 

位运算符

1、在二进制数上进行计算的运算符

2、先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数

3、按位与运算符

(1)&

(2)当给定值对应的二进制位的数值,都为 1 时,则该位返回 1,否则返回 0

4、按位或运算符

(1)|

(2)当给定值对应的二进制位的数值,有一个或两个为 1 时,则该位返回 1,否则返回 0

5、按位异或运算符

(1)^

(2)当给定值对应的二进制位的数值不同时,则该位返回 1,否则返回 0

6、按位取反运算符

(1)~

(2)将给定的值的二进制数逐位进行取反操作,将 1 变为 0,将 0 变为 1

(3)~ 优先级高于 &

7、按位右移运算符

(1)>>

(2)右移指定的位数后,右边低位的数值被移出并丢弃,左边高位空出的位置用 0 补齐

8、按位左移运算符

(1)<<

(2)左移指定的位数后,左边高位的数值被移出并丢弃,右边低位空出的位置用 0 补齐 

 

运算符优先级

1、如果级别相同,MySQL 按表达式的顺序从左到右依次计算

2、在无法确定优先级的情况下,可以使用 () 来改变优先级,并且这样会使计算过程更加清晰

优先级由低到高排列 运算符
1 =(赋值运算)、:=
2 II、OR
3 XOR
4 &&、AND
5 NOT
6 BETWEEN、CASE、WHEN、THEN、ELSE
7 =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN
8 |
9 &
10 <<、>>
11 -(减号)、+
12 *、/、%
13 ^
14 -(负号)、〜(位反转)
15 !
16 ()

 

正则表达式

1、检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串

2、MySQL 中使用 REGEXP 关键字,指定正则表达式的字符匹配模式

3、字符 ^ 匹配以特定字符,或字符串开头的文本

4、字符 $ 匹配以特定字符,或字符串结尾的文本

5、符号 . 来替代字符串中的任意一个字符

6、* 匹配前面的字符任意多次,包括 0 次

7、+ 匹配前面的字符至少一次

8、正则表达式可以匹配指定字符串,只要这个字符串在查询文本中即可

(1)如要匹配多个字符串,多个字符串之间使用分隔符 | 隔开

(2)LIKE 运算符也可以匹配指定的字符串,但与 REGEXP 不同,LIKE 匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回

(3)REGEXP 在文本内进行匹配,如果被匹配的字符串在文本中出现,REGEXP将会找到它,相应的行也会被返回

9、[] 指定一个字符集合,只匹配其中任何一个字符,即为所查找的文本

10、[^ ] 指定一个字符集合, 匹配不在指定集合中的任何字符

11、字符串{n,} 表示至少匹配 n 次前面的字符

12、字符串{n,m} 表示匹配前面的字符串不少于 n 次,不多于 m 次

posted @   半条咸鱼  阅读(184)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示