以下文章来源于何先振,责编小何

算术运算符包括:+、-、*、/或者div、%或者mod

在SQL中,+没有连接作用,只表示加法运算。
加字符时,会将数字字符串做隐式转换。

如果不是数字的字符,默认为0

如果跟null值做运算,结果都是null值

乘除运算
如果分母为0的话,结果为null

除法不管除不除的断,得到的值都是浮点类型

取模运算 % 或者mod,前面的被取模数为正数,就是正数。被取模数伟负数,就是负数。

练习,筛选出id为偶数的员工

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较结果为假则返回0,其他情况返回null。
= 等于、安全等于<=>、<>、!=、<、<=、>、>=
字符和数字比较,隐式转换不成功,就会默认为0

两边都是字符的情况下,则按照ANST的比较规则进行比较。

只要有null参与判断的,结果就为null

表达式使用在where条件中

此时执行不会有任何结果,因为where过滤,会拿表中每行对应字段的值做比较,如果为1就显示,因为有null值参与运算就都是null,因此不会有结果。

安全等于<=> ,可以用来比较null值。

通过<=> 查出奖金率为null的员工

is null、is not null、isnull
is null和安全等于<=> 用法相同

也可以使用isnull()函数,查出是null的

is not null查出不是null的

<=>安全等于和not关键字,配合查出不是null的

LEAST()最小、GREATEST最大
求最大最小

返回两列中最小和最大的列的值

返回两列中最小和最大的列的值

BETWEEN 条件1 AND 条件2
查询条件1和条件2范围内的数据 包括条件本身。
查找员工工资在6000到8000区间范围内的员工

注意,条件1为下界,条件2为上界,颠倒就查不出数据

除了使用BETWEEN AND 还可以使用逻辑运算符&& 实现

也可以通过not 配合BETWEEN查询工资不在6000到8000的员工

也可以使用逻辑运算符or,查询工资不在6000到8000的员工

in(set) 、not in(set) ,set为集合
查询部门为10,20,30部门的员工信息

查询不为10,20,30部门的员工信息

LIKE 模糊查询,需要配合%分号实现
%分号代表不确定个数的字符(0个、1个、或多个)
查询名字包含a的员工

查询名字开头是a的员工

查询名字同时包含a和e的员工
写法1:使用and

写法2,使用%包含a和e

_下划线代表一个不确定的字符
查询名字中第二个字符包含a的员工

如果不需要表示_下划线,可以使用转意字符\
查询名字中第二字符为_下划线的员工

ESCAPE 转意符号,自定义转意符
查询名字中第二字符为_下划线的员工,转意符自定义

正则表达式PEGEXP、PLIKE
正则表达式的规则,简单举例,具体的可以看正则表达式相关的知识内容。

通过正则表达式,找到名字开头包含a的

通过正则表达式,找到名字结尾包含n的







