SQL 的 AND、OR 和 NOT 運算符:條件篩選的高級用法

来源:https://www.cnblogs.com/xiaowange/archive/2023/11/19/17841943.html
-Advertisement-
Play Games

AND 運算符 SQL的AND運算符用於根據多個條件篩選記錄,確保所有條件都為TRUE才返回記錄。下麵是AND運算符的基本語法: SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND cond ...


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SciPy庫的optimize模塊主要用於執行各種優化任務。優化是尋找特定函數的最小值或最大值的過程,通常用於機器學習、數據分析、工程和其他領域。 scipy.optimize提供了多種優化演算法,包括梯度下降法、牛頓法、最小二乘法等,可以解決各種複雜的優化問題。該模塊還包含一些特定的函數,用於解決某 ...
  • .NET8發佈後,Blazor支持四種渲染方式 靜態渲染,這種頁面只可顯示,不提供交互,可用於網頁內容展示 使用Blazor Server托管的通過Server交互方式 使用WebAssembly托管的在瀏覽器端交互方式 使用Auto自動交互方式,最初使用 Blazor Server,併在隨後訪問時 ...
  • AOT介紹 .Net8的本地預編機器碼AOT,它幾乎進行了100%的自舉。微軟為了擺脫C++的鉗制,做了很多努力。也就是代碼幾乎是用C#重寫,包括了虛擬機,GC,記憶體模型等等。而需要C++做的,也就僅僅是引導程式,本篇通過代碼來看下這段至關重要的引導程式的運作模式。 支持功能 SqlSugar OR ...
  • 關於Anolis8/Centos8系統重啟後ip地址不顯示的原因 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 ————— 作者:kirin #、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了 ...
  • DX後臺截圖C++實現代碼 文章僅發佈於https://www.cnblogs.com/Icys/p/DXGI.html和知乎上。 傳統的GDI API (BitBlt)雖然可以完美的完成後臺截圖的任務,但是歸根結底效率還是太低。 直接使用DXGI方法截圖只能完成前臺視窗的截圖,而DX HOOK的截 ...
  • 目錄前言一、使用的元器件二、模擬圖三、項目分析四、代碼編寫總結 前言 這個項目主要針對於選擇的人們作息不規律而設計的一個項目,這個項目是使用stm32f103系列的晶元來製作的(R6和C8)都可以使用。 一、使用的元器件 DS1302時鐘晶元 STM32F103R6 按鍵 LCD1602顯示屏 蜂鳴 ...
  • 命令行交互 命令行交互一般是學習資料庫的第一步,不過這些命令在後續用的比較少,瞭解即可。 角色命令 創建角色 use admin db.createUser({"user": "root", "pwd": passwordPrompt(), "roles": [{role:"role",db:"<d ...
  • SQL INSERT INTO 語句用於在表中插入新記錄。 INSERT INTO 語法 可以以兩種方式編寫INSERT INTO語句: 指定要插入的列名和值: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); 如果要為表的所有列添 ...
一周排行
    -Advertisement-
    Play Games
  • 當使用Autofac處理一個介面有多個實現的情況時,通常會使用鍵(key)進行區分或者通過IIndex索引註入,也可以通過IEnumerable集合獲取所有實例,以下是一個具體的例子,演示如何在Autofac中註冊多個實現,並通過構造函數註入獲取指定實現。 首先,確保你已經安裝了Autofac Nu ...
  • 本篇將分享Prometheus+Grafana的監控平臺搭建,並監控之前文章所搭建的主機&服務,分享日常使用的一些使用經驗本篇將配置常用服務的監控與面板配置:包括 MySQL,MongoDB,CLickHouse,Redis,RabbitMQ,Linux,Windows,Nginx,站點訪問監控,已... ...
  • 使用Aspirate可以將Aspire程式部署到Kubernetes 集群 工具安裝 dotnet tool install -g aspirate --prerelease 註意:Aspirate 正在開發中,該軟體包將作為預覽版進行版本控制,--prelease 選項將獲得最新的預覽版。 容器註 ...
  • 前言 本文要說的這種開發模式,這種模式並不是只有blazor支持,js中有一樣的方案next.js nuxt.js;blazor還有很多其它內容,本文近關註漸進式開發模式。 是的,前後端是主流,不過以下情況也許前後端分離並不是最好的選擇: 小公司,人員不多,利潤不高,創業階段能省則省 個人開發者,接 ...
  • 在.NET中,Microsoft.Extensions.Logging是一個靈活的日誌庫,它允許你將日誌信息記錄到各種不同的目標,包括資料庫。在這個示例中,我將詳細介紹如何使用Microsoft.Extensions.Logging將日誌保存到MySQL資料庫。我們將使用Entity Framewo ...
  • chatgpt介面開發筆記3: 語音識別介面 1.文本轉語音 1、瞭解介面參數 介面地址: POST https://api.openai.com/v1/audio/speech 下麵是介面文檔描述內容: 參數: { "model": "tts-1", "input": "你好,我是饒坤,我是ter ...
  • 前面兩篇文章主要是介紹瞭如何解決高併發情況下資源爭奪的問題。但是現實的應用場景中除了要解決資源爭奪問題,高併發的情況還需要解決更多問題,比如快速處理業務數據等, 本篇文章簡要羅列一下與之相關的更多技術細節。 1、非同步編程:使用async和await關鍵字進行非同步編程,這可以避免阻塞線程,提高程式的響 ...
  • 大家好,我是棧長。 Nacos 2.3.0 前幾天正式發佈了,新增了不少實用性的新功能,真是史上最強版本。 Nacos 2.3.0 還真是一個比較重要的大版本,因為它涉及了太多重大更新,今天棧長給大家來解讀下。 Nacos 先掃個盲: Nacos 一個用於構建雲原生應用的動態服務發現、配置管理和服務 ...
  • IDEA的遠程開發功能,可以將本地的編譯、構建、調試、運行等工作都放在遠程伺服器上執行,而本地僅運行客戶端軟體進行常規的開發操作即可,舊版本IDEA目前不支持該功能.,本例使用的是IDEA2023.2.5版本 下麵介紹如何在IDEA中設置遠程連接伺服器開發環境並結合Cpolar內網穿透工具實現無公網 ...
  • 本文解釋為啥會有響應式編程,為什麼它在開發者中不太受歡迎,以及引入 Java 虛擬線程後它可能最終會消失。 命令式風格編程一直深受開發者喜愛,如 if-then-else、while 迴圈、函數和代碼塊等結構使代碼易理解、調試,異常易追蹤。然而,像所有好的東西一樣,通常也有問題。這種編程風格導致線程 ...