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://www.hqwc.cn/news/674996.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python : isin()使用方法

在python中,isin() 方法主要与Pandas库中的Series和DataFrame对象关联,用于检查数据系列中的元素是否包含在另一个数组或列表中。这个方法非常有用,特别是在进行数据筛选、数据分析或是处理缺失值等场景。 isin()方法基本语法如下&#xff1…

mib browser读取mib文件的oid(飞塔防火墙为例)

在配置zabbix监控的时候,配置监控项最为麻烦,一般我们都会套用模板,这种方式比较简单,但是有些设备就是没有现成的zabbix模板,怎么办? 今天我们使用MIB Browser来获取设备SNMP的OID,然后加入zabbix 。 1.什么是MIB Browser SNMP客户端工具MIB Browser, 全名iReasonin…

加速乐 js解混淆 __jsl_clearance_s生成

提示!本文章仅供学习交流,严禁用于任何商业和非法用途,未经许可禁止转载,禁止任何修改后二次传播,如有侵权,可联系本文作者删除! 目标网站 aHR0cHM6Ly9jcmVkaXQuaGVmZWkuZ292LmNuL2NyZWRpdC13…

2023黑马头条.微服务项目.跟学笔记(五)

2023黑马头条.微服务项目.跟学笔记 五 延迟任务精准发布文章 1.文章定时发布2.延迟任务概述 2.1 什么是延迟任务2.2 技术对比 2.2.1 DelayQueue2.2.2 RabbitMQ实现延迟任务2.2.3 redis实现3.redis实现延迟任务4.延迟任务服务实现 4.1 搭建heima-leadnews-schedule模块4.2 数据库…

Sermant在异地多活场景下的实践

Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决异地多活场景下的故障切流和保护数据一致性问题。本文将对Sermant在异地多活场景下的实践进行剖析。 一、异地多活 1.1 什么是异地多活 对于一个软件系统,…

计算机考研|今年这么多高校改考408,该怎么择校呢?

25年改考408院校名单 考研第一重要的事情并不是分要多高,而是要能考得上! 尤其是408,绝对是选择大于努力的典范。方向不对,努力作废! 就看我22年的分数线吧,最炸的就属上海交大了,大旱区结果…

Redis 入坑基本指南

引言 本指南将帮助您了解如何安装、配置和基本使用 Redis。Redis 是一款开源的高性能键值存储系统,可用于缓存、数据库、消息中间件等多种用途。 1. 安装 Redis a. 下载 Redis: 可以从 Redis 官方网站(https://redis.io)下载最…

DDR4 新功能介绍

DDR4(第四代双倍数据率同步动态随机存取内存)相较于其前代DDR3,引入了一些新的功能和改进,这些新功能有助于提高内存的性能、降低功耗以及增强系统的可靠性,包括VPP、DBI(Data Bus Inversion,数据总线翻转)和DMI(与LPDDR4相关)。以下是对这些功能的简要说明: 更高的…

等保建设技术建议书(Word原件)

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…

Leetcode—377. 组合总和 Ⅳ【中等】

2024每日刷题&#xff08;124&#xff09; Leetcode—377. 组合总和 Ⅳ 算法思想 实现代码 class Solution { public:int combinationSum4(vector<int>& nums, int target) {vector<unsigned long long>dp(target 1);dp[0] 1;for(int i 1; i < target;…

[蓝桥杯]真题讲解:班级活动(贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> using namespace st…

哈夫曼树与哈夫曼编码

一、哈夫曼树相关概念 路径&#xff1a;从树中的一个节点到另一个节点之间的分支构成两个节点间的路径。 节点的路径长度&#xff1a;两节点间路径的分支数&#xff08;路径的个数&#xff09; 树的路径长度&#xff08;TL&#xff09;&#xff1a;从根节点到树中每一个点的路径…