首页 > 数据库 >SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

时间:2023-11-19 13:33:05浏览次数:46  
标签:CustomerName Country 运算符 SQL 筛选 WHERE SELECT LIKE

AND 运算符

SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
  • column1, column2,等是您要选择的列名称。
  • table_name是您从中选择记录的表的名称。
  • condition1, condition2,等是筛选记录的条件。
  • 使用AND运算符,所有条件都必须为TRUE,否则记录不会被返回。

以下是一些示例:

  1. 选择所有来自西班牙并以字母'G'开头的客户:
SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%';
  1. 选择所有来自西班牙,城市为'Berlin',且邮政编码大于12000的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany'
AND City = 'Berlin'
AND PostalCode > 12000;
  1. 选择所有以字母'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):
SELECT *
FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

OR 运算符

SQL的OR运算符用于根据多个条件筛选记录,只要有一个条件为TRUE,就会返回记录。下面是OR运算符的基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
  • column1, column2,等是您要选择的列名称。
  • table_name是您从中选择记录的表的名称。
  • condition1, condition2,等是筛选记录的条件。
  • 使用OR运算符,只要有一个条件为TRUE,记录就会被返回。

以下是一些示例:

  1. 选择所有来自德国或西班牙的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';
  1. 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:
SELECT *
FROM Customers
WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
  1. 结合使用ANDOR运算符,选择所有以'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):
SELECT *
FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

NOT 运算符

SQL的OR运算符用于根据多个条件筛选记录,只要有一个条件为TRUE,就会返回记录。下面是OR运算符的基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
  • column1, column2,等是您要选择的列名称。
  • table_name是您从中选择记录的表的名称。
  • condition1, condition2,等是筛选记录的条件。
  • 使用OR运算符,只要有一个条件为TRUE,记录就会被返回。

以下是一些示例:

  1. 选择所有来自德国或西班牙的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';
  1. 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:
SELECT *
FROM Customers
WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
  1. 结合使用ANDOR运算符,选择所有以'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):
SELECT *
FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

image

标签:CustomerName,Country,运算符,SQL,筛选,WHERE,SELECT,LIKE
From: https://www.cnblogs.com/xiaowange/p/17841943.html

相关文章

  • NoSQL数据库类型简介
    NoSQL数据库类型简介近些年来,NoSQL数据库的发展势头很快。据统计,目前已经产生了50到150个NoSQL数据库系统。但是,归结起来,可以将典型的NoSQL划分为4种类型,分别是键值数据库、列式数据库、文档数据库和图形数据库,如图1所示。图14种类型的NoSQL数据库图2键值......
  • 通过PowerShellPlus示例脚本学习PowerShell-连接SQLServer数据库
    ##=====================================================================##Title:Connect-MSSQL-IPSQLAuth##Description:Connectto$ServerNameusingSQLServerauthentication.##Thisconnectionisnotencrypted.##......
  • Java零基础入门-关系运算符
    前言Java作为一门广受欢迎的开发语言,其在企业级应用和移动应用开发中有着广泛的应用。如果你是一个Java零基础的初学者,那么你来到了一个正确的地方。在本篇文章中,我们会详细介绍Java中的关系运算符,帮助你快速入门。摘要本文主要介绍Java中的关系运算符。关系运算符用于比较两个......
  • sql注入靶场问题处理2
    一、问题报错FailedtoconnecttoMySQL:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)Unabletoconnecttothedatabase:security二、问题解决2.1问题分析看着和用户名和密码相关,找到对应数据库文件位置修改数据库密码 三、访问测试问题解决......
  • sql注入靶场问题处理
    一、问题报错Fataleror:UncanghtEmrorCaltomdenedfmctionmysg,.comectmCphpstndyproWWWsgh-abs-mastersgh-labs-master'sg-comectionssg-comectphp;6Stacktrace:#C:ppstudyproWWWsgf-labs-mastersgh-labs-masterles-1indexphp(15):inchde0#1ma;t......
  • python:第二十四章:三元运算符
    一,三元运算符的语法:value_if_trueifconditionelsevalue_if_false相当于:ifcondition:   value_if_trueelse:   value_if_true它的作用:简化了代码说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blog.imgtouch.com原文: https://blog.imgtouch.c......
  • 物理机登录vmware虚拟机mysql报错处理
    一、问题报错主要有三个报错,图片展示如下:二、问题解决2.1问题分析 遇到问题,我们需要先分析问题。第一个问题1130-Host"11.0.1.1'isnotallowedtoconnecttothisMySQLserver大概可以看出是因为IP没在登录范围,类似设备的IP登录限制。进入win7虚拟机,找到my.cnf文......
  • 03MYSQL
    自增特性createtablet1(idintprimarykeyauto_increment,namevarchar(32));insertintot1(name)values('jason'),('kevin'),('tony');insertintot1(name)values('oscar');#id=4deletefromt1whereid=4;i......
  • Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
    原文链接:https://tecdat.cn/?p=34286原文出处:拓端数据部落公众号分析师:ShichaoZhong项目挑战如何处理庞大的数据集,并对数据进行可视化展示;在后续分析中特征选择是重点之一,要根据事实情况和数据易处理的角度来筛选变量解决方案任务/目标根据已有的车祸数据信息,计算严重车祸......
  • Mysql报:error while loading shared libraries libtinfo.so.5的解决办法
    版权声明:原创作品,谢绝转载!否则将追究法律责任。—————作者:kirin#、今天闲来无事,想在Anolis8的系统上装一个MySQL8.0玩。前期在安装和配置的过程中没有什么问题,但是在我想查看一下数据库版本的时候报了一个错。具体报错信息如下:mysql:errorwhileloadingsharedlibrarie......