数据库中逻辑运算符的介绍以及优先级表
目次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;https://i-blog.csdnimg.cn/blog_migrate/3b1f0e210f659b88500cbbf89cdc05c5.png
2.逻辑与
规则: 运算符是当给定的全部值均为非0值,而且都不为NULL时,返回1; 当给定的一个值或者多个值为0时则返回0;否则返回NULL。 SELECT 1 AND -1,0 AND 1,0 AND NULL,1 AND NULL;https://i-blog.csdnimg.cn/blog_migrate/551511c45df92a7c1924a99b6ab944db.png
SELECT employee_id,last_name
FROM employees
WHERE salary>=10000 AND last_name LIKE '小%';https://i-blog.csdnimg.cn/blog_migrate/695ca56ce067b833831188aa102fa27f.png
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; https://i-blog.csdnimg.cn/blog_migrate/7e0c2f0a94e2dd446f57d7e55207a6dc.png
注意:
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 https://i-blog.csdnimg.cn/blog_migrate/20d38593a306c01d95f7b6cfe8a2d3a4.png
5.位运算符
&按位与
|按位或
^按位异或
~按位取反
>>按位右移
<<按位左移
例:按位与
SELECT 1&10,20&30;
https://i-blog.csdnimg.cn/blog_migrate/e9869e94fdf97d3a7795fb71490d5dff.png
1 的二进制数为 0001 , 10 的二进制数为 1010 ,以是 1&10 的结果为 0000 ,对应的十进制数为 0 。 20 的二进制数为10100 , 30 的二进制数为 11110 ,以是 20&30 的结果为 10100 ,对应的十进制数为 20 。(一位一位比力运算)
例2:按位或
SELECT 1|10 , 20|30;https://i-blog.csdnimg.cn/blog_migrate/efcfdc02cea8ad15d19bd42663d3fccb.png
1 的二进制数为 0001 , 10 的二进制数为 1010 ,以是 1|10 的结果为 1011 ,对应的十进制数为 11 。 20 的二进制数为10100 , 30 的二进制数为 11110 ,以是 20|30 的结果为 11110 ,对应的十进制数为 30 。 例3:按位异或
SELECT 1^10 , 20^30; https://i-blog.csdnimg.cn/blog_migrate/929eb4930b64bf44928a923a5048f8a3.png
例4:按位取反
SELECT 10 & ~1; https://i-blog.csdnimg.cn/blog_migrate/12484667565711a16af4b71193554a9f.png
如今以按位与盘算为例:
https://i-blog.csdnimg.cn/blog_migrate/b0ec2f7bf1aada29be8b74c2ccaa563e.png
例5:按位右移:
简介:将给定的值的二进制数的全部位右移指定的位数。右移指定的位数后,右边低位的数值被移出并丢弃,左边高位空出的位置用0 补齐。 SELECT 1>>2,4>>2; https://i-blog.csdnimg.cn/blog_migrate/823d4962e5f3149e019506512490bed6.png
解释:1的二进制数为00000001,右移2位为00000000,对应的十进制数为0。
4的二进制数为00000100,右移2位为00000001,对应的十进制数为1。
例6:按位左移
简介:将给定的值的二进制数的全部位左移指定的位数。左移指定的位数后,左边高位的数值被移出并丢弃,右边低位空出的位置用0 补齐。 SELECT 1<<2,4<<2; https://i-blog.csdnimg.cn/blog_migrate/ffb23e5714a1b8281fe5d0fbf20c27ae.png
1 的二进制数为 00000001 ,左移两位为 00000100 ,对应的十进制数为 4 。 4 的二进制数为 00000100 ,左移两位为00010000 ,对应的十进制数为 16 。
运算符的优先级表
https://i-blog.csdnimg.cn/blog_migrate/158fff201069bde1ae2a84b1b12f3358.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]