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
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...