【MySQL】MySQL中的逻辑运算符,位运算符和运算符的优先级
目录
- 一、 逻辑运算符
- 1.1 逻辑非NOT
- 1.2 逻辑与AND
- 1.3 逻辑或OR
- 1.4 逻辑异或XOR
- 二、 位运算符
- 三、 运算符的优先级
一、 逻辑运算符
MySQL中支持4种逻辑运算符:
运算符 | 作用 |
---|---|
NOT 或 ! | 逻辑非 |
AND 或 && | 逻辑与 |
OR 或 || | 逻辑或 |
XOR | 逻辑异或 |
以上4种逻辑运算符都非常简单,如果有其他编程语言的基础,看一下以下的例子就理解了。
1.1 逻辑非NOT
【例子】查询员工表 employees
中月工资 salary
不在6000 ~ 8000 的员工的 employee_id
、last_name
、salary
信息。
SELECT employee_id, last_name, salary
FROM employees
WHERE salary NOT BETWEEN 6000 AND 8000;
查询结果:
1.2 逻辑与AND
【例子】查询员工表 employees
中部门ID department_id
为 50 且工资 salary
大于 5000 的员工的 employee_id
、last_name
、salary
和 department_id
信息。
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE department_id = 50 AND salary >= 5000;
查询结果:
1.3 逻辑或OR
【例子】查询员工表 employees
中部门ID department_id
为 10 或 20 的员工的 employee_id
、last_name
和 department_id
信息。
SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id = 10 OR department_id = 20;
查询结果:
1.4 逻辑异或XOR
异或XOR用得比较少。
【例子】查询员工表 employees
中部门ID department_id
为 50 但月工资 salary
大于 5000,和部门ID department_id
不为 50 但月工资 salary
小于 5000的员工的 employee_id
、last_name
、salary
和 department_id
信息。
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE department_id = 50 XOR salary < 5000;
查询结果:
【注意】
- AND的优先级高于OR。
二、 位运算符
MySQL中有6种位运算符:
运算符 | 作用 |
---|---|
& | 按位与 (位AND) |
| | 按位或 (位OR) |
^ | 按位异或 (位XOR) |
~ | 按位取反 |
>> | 按位右移 |
<< | 按位左移 |
【例子1】
SELECT 12 & 5, 12 | 5, 12 ^ 5
FROM DUAL;
查询结果:
至于为什么得数是这样,把上面的十进制数转化为二进制数,按位操作即可。如下图所示:
【例子2】
SELECT 4 << 1, 8 >> 1
FROM DUAL;
查询结果:
其实,位运算符无论在MySQL还是在其他编程语言中都用得比较少。按我个人的经验来说,用得最多的就是最下面两行的 <<
和 >>
,按位右移就表示二进制数除以2;而按位左移就表示二进制数乘2。在Java的集合源码中的数组扩容源码曾经看到过这两个符号的身影,它们能够加快程序运行的效率。
三、 运算符的优先级
运算符之间是有优先级的,不同运算符之间的优先级如下表所示:数字越大,优先级越高。
【MySQL】MySQL中的逻辑运算符,位运算符和运算符的优先级相关推荐
- 数学运算符和运算符的优先级
一.数学运算符和运算符的优先级 所谓数学函数,顾名思义就是在公式中为了进行数学运算所设计出来的函数.其实要在Excel中进行数学运算并不是所有的情况下都用数学函数,有些情况下可以用基本的数学运算符就可 ...
- JS运算符和运算符的优先级
一.算数运算符 + 加:可以对两个值进行加法运算,如果是两个字符串则进行字符串拼接 任何值和字符串做加法运算,都会先转为字符串,然后再和字符串做拼接操作 也可以通过"+"完成隐式转 ...
- 逻辑运算符 位运算符_在现代PHP中,按位运算符仍然有意义吗?
逻辑运算符 位运算符 Many of you probably scratched your heads reading this title. "Bitwhat?" 你们中的许多 ...
- c++语言运算符的优先次序,C++中的运算符和运算符优先级总结
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...
- C++中的运算符和运算符优先级总结
原文链接:http://www.jb51.net/article/83857.htm 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术 ...
- java中常用的位运算符及其应用
1.位运算就是直接对整数在内存中的二进制位进行操作,针对与int类型进行操作 Java中常用的位运算符有以下7种: & | ^ ~ << ...
- python位运算符_详细介绍Python语言中的按位运算符
按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...
- C语言运算符逻辑运算符位运算符
逻辑运算符 下表显示了 C 语言支持的所有关系逻辑运算符.假设变量 A 的值为 1,变量 B 的值为 0,则: 运算符 描述 实例 && 称为逻辑与运算符.如果两个操作数都非零,则条件 ...
- javascript运算符_JavaScript中的按位运算符
javascript运算符 JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some str ...
最新文章
- 贝叶斯统计的无信息先验和共轭先验
- java struts2 漏洞复现合集
- 如何动态调用WebServices
- 人性 - 社会 - 经济 - 科学
- JUC-ReadWriteLock
- 发表和编辑Post的一个Bug
- cfF. Boring Queries
- 数据结构作业1 讲解和拓展
- 程序员应具备的职业素质
- win7如何启用计算机的无线功能,win7笔记本怎么打开无线-win7打开无线功能,win7已关闭无线功能 未修复...
- 东南亚电商lazadashopee平台怎么开店,需要什么条件?
- 2022 MegCup | 小模型盲降噪怎么比?资深炼丹师给你赛前指导!
- 计算机类毕业设计评语导师评语,毕业设计指导老师评语
- 电驴无限制 服务器,全球最大电驴服务器eDonkeyServer No2消失
- Wargames(一)
- 【基础】struct的函数操作
- 如何通过JavaScript获取搜索引擎搜索关键词
- 计算机硬件组装什,计算机硬件组装的步骤详解
- Linux端类似种子猫的软件,值得一试的四款Linux Torrent客户软件
- ethtool netlink 框架原理浅析