mysql必知必會--過 濾 數 據

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/21/12222101.html
-Advertisement-
Play Games

使用 WHERE 子句 資料庫表一般包含大量的數據,很少需要檢索表中所有行。通常只 會根據特定操作或報告的需要提取表數據的子集。只檢索所需數據需要 指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition)。 在 SELECT 語句中,數據根據 WHE ...


使用 WHERE 子句

資料庫表一般包含大量的數據,很少需要檢索表中所有行。通常只
會根據特定操作或報告的需要提取表數據的子集。只檢索所需數據需要
指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter
condition)。
在 SELECT 語句中,數據根據 WHERE 子句中指定的搜索條件進行過濾。
WHERE 子句在表名( FROM 子句)之後給出,

這條語句從 products 表中檢索兩個列,但不返回所有行,只返
回 prod_price 值為 2.50 的行

這個例子採用了簡單的相等測試:它檢查一個列是否具有指定的值,
據此進行過濾。但是SQL允許做的事情不僅僅是相等測試

SQL過濾與應用過濾 數據也可以在應用層過濾。為此目
的,SQL的 SELECT 語句為客戶機應用檢索出超過實際所需的
數據,然後客戶機代碼對返回數據進行迴圈,以提取出需要
的行。

通常,這種實現並不令人滿意。因此,對資料庫進行了優化,
以便快速有效地對數據進行過濾。讓客戶機應用(或開發語言)
處理資料庫的工作將會極大地影響應用的性能,並且使所創建
的應用完全不具備可伸縮性。此外,如果在客戶機上過濾數據,
伺服器不得不通過網路發送多餘的數據,這將導致網路帶寬的
浪費。

WHERE 子句的位置 在同時使用 ORDER BY 和 WHERE 子句時,應
該讓 ORDER BY 位於 WHERE 之後,否則將會產生錯誤

WHERE 子句操作符

我們在關於相等的測試時看到了第一個 WHERE 子句,它確定一個列是
否包含特定的值。MySQL支持表6-1列出的所有條件操作符

不匹配檢查

以下例子列出不是由供應商 1003 製造的所有產品

何時使用引號單引號用來限定字元串。如果將值與串類型的
列進行比較,則需要限定引號。用來與數值列進行比較的值不
用引號。

下麵是相同的例子,其中使用 != 而不是 <> 操作符:

範圍值檢查

為了檢查某個範圍的值,可使用 BETWEEN 操作符。其語法與其他 WHERE
子句的操作符稍有不同,因為它需要兩個值,即範圍的開始值和結束值。
例如, BETWEEN 操作符可用來檢索價格在5美元和10美元之間或日期在指
定的開始日期和結束日期之間的所有產品

下麵的例子說明如何使用 BETWEEN 操作符,它檢索價格在5美元和10
美元之間的所有產品

從這個例子中可以看到,在使用 BETWEEN 時,必須指定兩個值
——所需範圍的低端值和高端值。這兩個值必須用 AND 關鍵字
分隔。 BETWEEN 匹配範圍中所有的值,包括指定的開始值和結束值

空值檢查

在創建表時,表設計人員可以指定其中的列是否可以不包含值。在
一個列不包含值時,稱其為包含空值 NULL

NULL 無值(no value),它與欄位包含 0 、空字元串或僅僅包含
空格不同

SELECT 語句有一個特殊的 WHERE 子句,可用來檢查具有 NULL 值的列。
這個 WHERE 子句就是 IS NULL 子句。其語法如下:

這條語句返回沒有價格(空 prod_price 欄位,不是價格為 0 )的所有
產品,由於表中沒有這樣的行,所以沒有返回數據

NULL 與不匹配 在通過過濾選擇出不具有特定值的行時,你
可能希望返回具有 NULL 值的行。但是,不行。因為未知具有
特殊的含義,資料庫不知道它們是否匹配,所以在匹配過濾
或不匹配過濾時不返回它們。
因此,在過濾數據時,一定要驗證返回數據中確實給出了被
過濾列具有 NULL 的行。

本章介紹瞭如何用 SELECT 語句的 WHERE 子句過濾返回的數據。我們學
習瞭如何對相等、不相等、大於、小於、值的範圍以及 NULL 值等進行測
試。


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

-Advertisement-
Play Games
更多相關文章
  • 思路:一臺Server 2016用作AD+DNS,一臺Server 2016用作Exchange Server 2016 Exchange Server 2016 CU14 安裝路徑:安裝路徑:https://www.microsoft.com/en-us/download/details.aspx ...
  • WEB管理工具 WebVirtMgr WebVirtMgr是一個基於libvirt的Web界面,用於管理虛擬機。它允許您創建和配置新域,並調整域的資源分配。VNC查看器為來賓域提供完整的圖形控制台。KVM是目前唯一支持的虛擬機管理程式。 基礎環境 hosts免密登錄 kvm所用的所有伺服器都需要互相 ...
  • JDK 的安裝系統安裝就不做過多介紹,大家從網上尋找安裝步驟進行安裝,不過我推薦大家進行安裝時選擇桌面圖形化格式進行安裝,方便做一部分操作,同時在安裝過程中選擇英文模式,同時我自己在安裝的過程中發現使用Oracle VM VirtualBox這個虛擬機工具比使用VM工具開發更加方便些 使用工具 系統 ...
  • 造成這種情況的原因有很多,如果直接百度錯誤信息的話,不一定能很快解決問題,所以,出現這種情況,我們可以使用 mysqld console 命令來查看報錯信息,然後根據報錯信息來百度,這樣就很快定位到問題所在。看到以下截圖,我的問題是 Please make sure that directory e ...
  • 推薦閱讀: 論主數據的重要性(正確理解元數據、數據元) CDC+ETL實現數據集成方案 Java實現impala操作kudu 實戰kudu集成impala impala基本介紹 impala是cloudera提供的一款高效率的sql查詢工具,提供實時的查詢效果,官方測試性能比hive快10到100倍 ...
  • 正則表達式介紹 前兩章中的過濾例子允許用匹配、比較和通配操作符尋找數據。對 於基本的過濾(或者甚至是某些不那麼基本的過濾),這樣就足夠了。但 隨著過濾條件的複雜性的增加, WHERE 子句本身的複雜性也有必要增加。 這也就是正則表達式變得有用的地方。正則表達式是用來匹配文本 的特殊的串(字元集合)。 ...
  • LIKE 操作符 前面介紹的所有操作符都是針對已知值進行過濾的。不管是匹配一 個還是多個值,測試大於還是小於已知值,或者檢查某個範圍的值,共 同點是過濾中使用的值都是已知的。但是,這種過濾方法並不是任何時 候都好用。例如,怎樣搜索產品名中包含文本anvil的所有產品?用簡單 的比較操作符肯定不行,必 ...
  • 如何組合 WHERE 子句以建立功能更強的更高級的搜索條件?如何使用 NOT 和 IN 操作符? 組合 WHERE 子句 第6章中介紹的所有 WHERE 子句在過濾數據時使用的都是單一的條 件。為了進行更強的過濾控制,MySQL允許給出多個 WHERE 子句。這些子 句可以兩種方式使用:以 AND ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...