数据库中逻辑运算符的介绍以及优先级表

目录

1.逻辑非运算

2.逻辑与

3.逻辑或

4.逻辑异或:

5.位运算符

例:按位与

例2:按位或

例3:按位异或

例4:按位取反

例5:按位右移:

例6:按位左移

                                                运算符的优先级表


简介:逻辑运算符主要判断表达式的真假,返回值为1,0,null

其中包含:

        逻辑非:not或!

        逻辑与:and或&&

        逻辑或:or或||

        逻辑异或:XOR

1.逻辑非运算

规则:
        当给定的值为非0 值时返回 0
        当给定的值为NULL 时,返回 NULL
例:
SELECTNOT1,NOT0,NOT(1+1),NOT!1,NOTNULL;

2.逻辑与

  规则:
        运算符是当给定的所有值均为非0值,并且都不为 NULL 时,返回1;
        
        当给定的一个值或者多个值为0时则返回 0 ;否则返回 NULL
SELECT 1 AND -1,0 AND 1,0 AND NULL,1 AND NULL;

SELECT employee_id,last_name
FROM employees
WHERE salary>=10000 AND last_name LIKE '小%';

3.逻辑或

规则:

        1.当给定的值都不为NULL ,并且任何一个值为非 0 值时,则返回1 ,否则返回 0
        2.当一个值为NULL ,并且另一个值为非 0 值时,返回 1 ,否则返回 NULL
        3.当两个值都为 NULL时,返回NULL
SELECT 1 OR -1,1 OR 0,1 OR NULL,0 || NULL,NULL || NULL;

注意:

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

4.逻辑异或:

规则:

        1.当给定的值中任意一个值为NULL 时,则返回 NULL
        2.如果两个非NULL的值都是 0 或者都不等于 0 时,则返回 0
        3.如果一个值为0 ,另一个值不为 0 时,则返回 1
select 1 XOR -1,1 XOR 0,0 XOR 0,1 XOR NULL,1 XOR 1 XOR 1,0 XOR 0 XOR 0

5.位运算符

&按位与

|按位或

^按位异或

~按位取反

>>按位右移

<<按位左移

例:按位与

SELECT 1&10,20&30;

1 的二进制数为 0001 10 的二进制数为 1010 ,所以 1&10 的结果为 0000 ,对应的十进制数为 0
20 的二进制数为10100 30 的二进制数为 11110 ,所以 20&30 的结果为 10100 ,对应的十进制数为 20 。(一位一位比较运算)

例2:按位或

SELECT 1|10 , 20|30;

1 的二进制数为 0001 10 的二进制数为 1010 ,所以 1|10 的结果为 1011 ,对应的十进制数为 11
20 的二进制数为10100 30 的二进制数为 11110 ,所以 20|30 的结果为 11110 ,对应的十进制数为 30

例3:按位异或

SELECT 1^10 , 20^30;

例4:按位取反

SELECT 10 & ~1;

现在以按位与计算为例:

例5:按位右移:

简介:将给定的值的二进制数的所有位右移指定的位数。右移指定的位数后,右边低位的数值被移出并丢弃,左边高位空出的位置用0 补齐。
SELECT 1>>2,4>>2;

解释:1的二进制数为00000001,右移2位为00000000,对应的十进制数为0

            4的二进制数为00000100,右移2位为00000001,对应的十进制数为1

例6:按位左移

简介:将给定的值的二进制数的所有位左移指定的位数。左移指定的位数后,左边高位的数值被移出并丢弃,右边低位空出的位置用0 补齐。
SELECT 1<<2,4<<2;

1 的二进制数为 00000001 ,左移两位为 00000100 ,对应的十进制数为 4
4 的二进制数为 00000100 ,左移两位为00010000 ,对应的十进制数为 16

                                                运算符的优先级表


  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值