SQL查询语句(二)逻辑运算关键字

        上一篇文章中我们提到了条件查询除了一些简单的数学符号之外,还有一些用于条件判断的关键字,如逻辑判断 关键字AND,OR,NOT和范围查找关键字BETWEEN,IN等;下面我们来介绍一些这些关键字的用法以及他们所表达的含义。

目录

逻辑运算关键字

AND

OR

NOT


逻辑运算关键字

        在进行条件查找时,仅有一个判断条件的情况是比较少见的,大多数情况下我们的WHERE子句需要同时判断多个条件,此时就需要用到逻辑运算的关键字来将这些条件连接起来。

  • AND

        AND操作符可以用来连接多个条件,作用是:当AND连接的多个条件同时成立时,AND操作符的条件判定结果才算成立,其实就是我们所学习的“与”运算。它的具体用法如下所示:

SELECT * FROM student
WHERE name = '张三' AND age = 18;

上述SQL语句所表达的含义是:

        从student表中, 找出满足条件name='张三'并且同时满足条件age='18'的所有行的所有列的数据并返回结果。

如果还有其它条件的话,还可以再后面继续叠加AND操作符。如下:

SELECT * FROM student
WHERE name = '张三' AND age = 18 AND sex = '男';
  • OR

        OR操作符同样可以用来连接多个条件,作用是:当OR连接的多个条件中,有一个条件成立时,OR操作符的条件判定结果就算成立,也就是我们所学习的“或”运算。它的具体用法如下所示:

SELECT * FROM student
WHERE name = '张三' OR name = '李四';

上述SQL语句所表达的含义是:

        从student表中, 找出满足条件name='张三'或者满足条件name='李四'的所有行的所有列的数据并返回结果。

如果还有其它条件的话,还可以再后面继续叠加OR操作符。如下:

SELECT * FROM student
WHERE name = '张三' OR name = '李四' OR name = '王五';

使用OR操作符有以下几点需要注意: 

  1. 即使多个判定条件中用得到的列名是一样的,也不可以省略,否则会出错;
    --正确写法--
    SELECT * FROM student
    WHERE name = '张三' OR name = '李四' OR name = '王五';--错误写法--
    SELECT * FROM student
    WHERE name = '张三' OR '李四' OR '王五';
  2. OR操作符和AND操作符可以叠加使用,但是其中存在计算次序问题,无论操作符前后关系如何,AND操作符的计算规则都在OR之前,有括号则先计算括号内的操作符。如下所示:
    --1--
    SELECT * FROM student
    WHERE name = '张三' OR name = '李四' AND age = 18;--2--
    SELECT * FROM student
    WHERE name = '李四' AND age = 18 OR name = '张三';--3--
    SELECT * FROM student
    WHERE (name = '张三' OR name = '李四') AND age = 18;

    上述三条语句如下所示:

    1. 语句1和2所表示的含义是相同的:从student表中,找出满足条件name='张三'的记录,或者满足条件name='李四'并且同时age='18'的记录。因此这里返回的结果中name='张三'的记录,它的age不一定是18。

    2. 语句3所表示的含义是:从student表中,找出满足条件name='张三'或者name='李四',并且同时满足条件age='18'的记录。返回的所有结果一定都满足age='18'这个条件。

  • NOT

        NOT关键字通常与IN、BETWEEN和EXISTS等关键字连在一起使用,用来对这些子句返回的结果取反,如下所示:

--1--
SELECT * FROM student
WHERE age IN (18,19,20);--2--
SELECT * FROM student
WHERE age = 18 OR age = 19 OR age = 20;--3--
SELECT * FROM student
WHERE age NOT IN (18,19,20);--4--
SELECT * FROM student
WHERE age != 18 AND age != 19 AND age != 20;

上面四条SQL语句中:

  • 1和2所表示的含义一致:表示从student表中,查找出所有age等于18,19,20的记录。
  • 3和4所表示的含义一致:表示从student表中,查找出除age等于18,19,20之外的所有记录。

(有关范围查找关键字IN,BETWEEN和EXISTS的用法我们在下一篇文章中介绍)

以上就是SQL语句中,关于条件查询的逻辑运算关键字的用法和注意点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3017300.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python类方法探秘:从单例模式到版本控制

引言: 在Python编程中,类方法作为一种特殊的实例方法,以其独特的魅力在众多编程范式中脱颖而出。它们不仅提供了无需实例即可调用的便捷性,还在设计模式、版本控制等方面发挥着重要作用。本文将通过几个生动的示例,带您…

搭建Springboot的基础开发框架-01

本系列专题虽然是按教学的深度来定稿的,但在项目结构和代码组织方面是按公司系统的要求来书定的。在本章中主要介绍下基础开发框架的功能。后续所有章节的项目全是在本基础框架的基础上演进的。 工程结构介绍 SpringbootSeries:父工程,定义一…

医药垃圾分类管理系统|基于SSM医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)

医药垃圾分类管理系统 目录 基于SSM医药垃圾分类管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统登录模块 2管理员模块实现 3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…

【C语言】精品练习题

目录 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目九: 题目十: 题目十一: 题目十二: 题目十…

HarmonyOS开发案例:【计算器】

介绍 基于基础组件、容器组件,实现一个支持加减乘除混合运算的计算器。 说明: 由于数字都是双精度浮点数,在计算机中是二进制存储数据的,因此小数和非安全整数(超过整数的安全范围[-Math.pow(2, 53),Math.…

董事长张轶群刚被罚,合规问题屡见不鲜,富友支付IPO胜算几何?

第三方支付机构富友支付又双叒来冲刺上市了。 与此前两次冲刺A股不同的是,富友支付此次选择在港股上市。近日,富友支付向港交所主板递交上市申请,联席保荐人为中信证券、申万宏源香港。值得一提的是,此前的2018年、2021年&#x…

【C++】从零开始认识多态

送给大家一句话: 一个犹豫不决的灵魂,奋起抗击无穷的忧患,而内心又矛盾重重,真实生活就是如此。 ​​​​ – 詹姆斯・乔伊斯 《尤利西斯》 _φ(* ̄ω ̄)ノ_φ(* ̄ω ̄)&…

Redis(Redis配置和订阅发布)

文章目录 1.Redis配置1.网络配置1.配置文件位置 /etc/redis.conf2.bind(注销支持远程访问)1.默认情况bind 127.0.0.1 只能接受本机的访问2.首先编辑配置文件3.进入命令模式输入/bind定位,输入n查找下一个,shift n查找上一个&…

SpringBoot的@Async注解有什么坑?

前言 SpringBoot中,Async注解可以实现异步线程调用,用法简单,体验舒适。 但是你一定碰到过异步调用不生效的情况,今天这篇文章总结了Async注解的坑点,希望对你会有所帮助。 未启用异步支持 Spring Boot默认情况下不启…

flutter中固定底部按钮,防止键盘弹出时按钮跟随上移

当我们想要将底部按钮固定在底部,我们只需在Widget中的Scaffold里面加一句 resizeToAvoidBottomInset: false, // 设置为false,固定页面不会因为键盘弹出而移动 效果图如下

操作系统:线程相关知识

目录 1.生产消费者模型 1.1.概念引入 1.2.基于阻塞队列的生产消费模型 1.3.POSIX信号量 1.3.1.再识信号量 1.3.2.信号量接口的学习 1.4.基于环行队列的生产消费模型 1.5.深刻理解生产消费模型 2.可重入函数与线程安全 1.生产消费者模型 1.1.概念引入 生产者-消费者模型…

dvwa靶场Insecure CAPTCHA(不安全的验证码)全难度教程(附代码分析)

搭建流程 注意linux和此搭建方法一样&#xff08;建议使用windows&#xff09; CAPTCHA&#xff08;Security Level: low&#xff09; 代码分析 <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 ) ) {// Hide the CAPTCHA form$hide_form true;// G…

【牛客】值周

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分。 因为l<100000000,所以数组开1e8。 唯一需要注意的点就是前面给b[0]单独赋值为1&#xff08;因为如果在循环中给b[0]赋值&…

[Maven]IDEA报错-xxx is referencing itself

在IDEA中&#xff0c;执行 mvn clean时报错xxx is referencing itself。 解决方案&#xff1a;https://stackoverflow.com/questions/64246267/maven-error-using-intellij-is-referencing-itself 具体做法&#xff1a;采用上图第二条&#xff0c;将父模块pom文件中的对子模块…

截图工具Snipaste:不仅仅是截图,更是效率的提升

在数字时代&#xff0c;截图工具已成为我们日常工作和生活中不可或缺的一部分。无论是用于工作汇报、学习笔记&#xff0c;还是日常沟通&#xff0c;一款好用的截图工具都能大大提升我们的效率。今天&#xff0c;我要向大家推荐一款功能强大且易于使用的截图软件——Snipaste。…

Pycharm安装包numpy和matplotlib安装

环境 python 3.12 Pycharm 2023.1 安装包 创建图表的 numpy 库和 matplotlib 库 安装过程出现的问题 setuptools工具包没有安装 Python packaging tool setuptools not found文件 -> 设置 -> 项目:xxx -> python解释器界面显示不出已安装的软件包&#xff0c;系…

MetaCRM upload 任意文件上传漏洞

文章目录 漏洞描述漏洞原理漏洞复现修复建议 漏洞描述 北京美特软件技术有限公司&#xff08;以下简称“美特软件”&#xff09;是一家专业的客户关系管理软件提供商。 美特软件MetaCrm存在文件上传漏洞&#xff0c;攻击者可利用该漏洞上传任意恶意文件。 漏洞原理 在系统u…

看完这篇文章我奶奶都懂Opentracing了(一)

前言 如果要基于Opentracing开发分布式链路追踪Java客户端工具包&#xff0c;首先肯定需要了解Opentracing中的各种概念&#xff0c;包括但不限于Span和Scope等&#xff0c;其实这些概念在Opentracing的官方文档中是有比较详尽的说明的&#xff0c;英文不好也能靠着机器翻译读…

【无标题】程序设计和c语言-谭浩强配套(适合专升本)

一晃大半年没更新了&#xff0c;一直在备考&#xff0c;想着这几天把前段时间学的c语言给大家分享一下&#xff0c;在此做了一个专栏&#xff0c;有需要的小伙伴可私信获取。 说明&#xff1a;本专栏所有内容皆适合专升本复习资料&#xff0c;本人手上也有日常刷题整理的错题以…

LT6911GXC HDMI2.1转mipi / lvds 支持8K 60HZ,提供技术支持

一、 HDMI 以及 GPIO 使用的相关配置 1.1 配置 EDID 在 LT6911GX.c 文件中添加需要的 EDID 二、输出信号配置 2.1 选择输出信号格式 在 Global.h 中配置输出信号类型&#xff0c;如下图所示 2.2 MIPI 信号格式配置 在 MIPITXGlobal.h 中配置 MIPI 相关参数