SQL运算符

三.运算符

1.算数运算符

在sql中,+没有连接的作用,只表示加法运算。此时,会将字符串转换为数值(隐式转换)

SELECT 100 + '1'
FROM DUAL;
#结果为101

SELECT 100 + 'a''a'0处理)
FROM DUAL;
#结果为100

SELECT 100 + 'NULL'
FROM DUAL;
#NULL参与运算,结果为NULL

#除法默认为浮点型,即使是两个整型相除
除法分母为0,结果为null
SELECT 100/2
FROM DUAL;

2.比较运算符

= 与 <=>(安全等于) 的区别

=:在比较null时,只要比较双方出现null,结果就为null。而并非0和1

<=>:在两个操作数都为null时,返回1,而不是null。当一个操作数为null时,返回0。可以说<=>就是为null而生

不等于:!= 或<>

在操作数有null时,建议写一行代码来测试为null还是为0为1的情况,无需死记硬背

例如:
SELECT 3<>2,3<>NULL,NULL != NULL
FROM DUAL;
运算符名称作用示例
IS NULL为空运算符判断值、字符串或表达式是否为空SELECT B FROM TABLE WHERE A IS NULL
IS NOTNULL不为空运算符判断值、字符串或表达式是否不为空SELECT B FROM TABLE WHERE A IS NOT NULL
LEAST最小值运算符在多个值中返回最小值SELECT D FROM TABLE WHERE C LEAST(A, B)
GREATEST最大值运算符在多个值中返回最大值SELECT D FROM TABLE WHERE C GREATEST(A, B)
BETWEEN … AND …两值之间的运算符判断一个值是否在两个值之间(闭区间,下界写在前面,上届写在后面)SELECT D FROM TABLE WHERE C BETWEEN A AND B
ISNULL为空运算符判断一个值、字符串或表达式是否为空SELECT B FROM TABLE WHERE A ISNULL
IN属于运算符判断一个值是否为列表中的任意一个值SELECT D FROM TABLE WHERE C IN(A, B)
NOT IN不属于运算符判断一个值是否不是一个列表中的任意一个值SELECT D FROM TABLE WHERE C NOT IN(A, B)
LIKE模糊匹配运算符判断一个值是否符合模糊匹配规则SELECT C FROM TABLE WHERE A LIKE B
REGEXP正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A REGEXPB
RLIKE正则表达式运算符判断一个值是否符合正则表达式的规则SELECT C FROM TABLE WHERE A RLIKEB

LIKE使用明细

%:表示不确定字符的个数
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%';

#查询第二个字符为a的员工姓名
_代表一个不确定字符
SELECT last_name
FROM employees
WHERE last_name LIKE '_a%';

特殊情况:如果员工姓名第二位为下划线,那么则需要用到转义字符\
SELECT last_name
FROM employees
WHERE last_name LIKE '_\_a%';

3.逻辑运算符

运算符作用示例
NOT 或 !逻辑非SELECT NOT A
AND 或 &&逻辑与SELECT A AND B
OR 或 ||逻辑或SELECT A OR B
XOR逻辑异或SELECT A XOR B

注意:OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行操作,再与OR中的操作数结合。

异或操作:简单理解就是两边不能同时满足

4.位运算符

运算符作用示例
&按位与(位AND)SELECT A & B
|按位或(位OR)SELECT A | B
^按位异或(为XOR)SELECT A ^ B
~按位取反SELECT ~A
>>按位右移SELECT A >> 2
<<按位左移SELECT B << 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值