目录

  • 一、 逻辑运算符
    • 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_idlast_namesalary 信息。

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_idlast_namesalarydepartment_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_idlast_namedepartment_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_idlast_namesalarydepartment_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中的逻辑运算符,位运算符和运算符的优先级相关推荐

  1. 数学运算符和运算符的优先级

    一.数学运算符和运算符的优先级 所谓数学函数,顾名思义就是在公式中为了进行数学运算所设计出来的函数.其实要在Excel中进行数学运算并不是所有的情况下都用数学函数,有些情况下可以用基本的数学运算符就可 ...

  2. JS运算符和运算符的优先级

    一.算数运算符 + 加:可以对两个值进行加法运算,如果是两个字符串则进行字符串拼接 任何值和字符串做加法运算,都会先转为字符串,然后再和字符串做拼接操作 也可以通过"+"完成隐式转 ...

  3. 逻辑运算符 位运算符_在现代PHP中,按位运算符仍然有意义吗?

    逻辑运算符 位运算符 Many of you probably scratched your heads reading this title. "Bitwhat?" 你们中的许多 ...

  4. c++语言运算符的优先次序,C++中的运算符和运算符优先级总结

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...

  5. C++中的运算符和运算符优先级总结

    原文链接:http://www.jb51.net/article/83857.htm 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术 ...

  6. java中常用的位运算符及其应用

    1.位运算就是直接对整数在内存中的二进制位进行操作,针对与int类型进行操作 Java中常用的位运算符有以下7种:     &      |        ^   ~   <<   ...

  7. python位运算符_详细介绍Python语言中的按位运算符

    按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...

  8. C语言运算符逻辑运算符位运算符

    逻辑运算符 下表显示了 C 语言支持的所有关系逻辑运算符.假设变量 A 的值为 1,变量 B 的值为 0,则: 运算符 描述 实例 && 称为逻辑与运算符.如果两个操作数都非零,则条件 ...

  9. javascript运算符_JavaScript中的按位运算符

    javascript运算符 JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some str ...

最新文章

  1. 贝叶斯统计的无信息先验和共轭先验
  2. java struts2 漏洞复现合集
  3. 如何动态调用WebServices
  4. 人性 - 社会 - 经济 - 科学
  5. JUC-ReadWriteLock
  6. 发表和编辑Post的一个Bug
  7. cfF. Boring Queries
  8. 数据结构作业1 讲解和拓展
  9. 程序员应具备的职业素质
  10. win7如何启用计算机的无线功能,win7笔记本怎么打开无线-win7打开无线功能,win7已关闭无线功能 未修复...
  11. 东南亚电商lazadashopee平台怎么开店,需要什么条件?
  12. 2022 MegCup | 小模型盲降噪怎么比?资深炼丹师给你赛前指导!
  13. 计算机类毕业设计评语导师评语,毕业设计指导老师评语
  14. 电驴无限制 服务器,全球最大电驴服务器eDonkeyServer No2消失
  15. Wargames(一)
  16. 【基础】struct的函数操作
  17. 如何通过JavaScript获取搜索引擎搜索关键词
  18. 计算机硬件组装什,计算机硬件组装的步骤详解
  19. Linux端类似种子猫的软件,值得一试的四款Linux Torrent客户软件
  20. ethtool netlink 框架原理浅析

热门文章

  1. 还为蚊虫、中暑、湿气烦恼吗?教你6个夏季养生小知识
  2. 智能路由器开发之OpenWrt简介
  3. 一条超级简单的故意让linux死机/宕机的命令
  4. 脊髓损伤怎么康复好?成都顾连康复治疗专业可靠
  5. Java网络编程小结
  6. Python + OpenCV 把书法里的单字提取出来
  7. 爱奇艺数据仓库平台和服务建设实践
  8. 使用计算机上级考试系统时显示注册键值hkey-路径无效,计算机组装于维护上级考试题解.doc...
  9. 微信小程序开发实战8_1 小程序客服消息的接收
  10. 国防科大计算机组成原理考研知识点总结