MySQL的過濾(極客時間學習筆記)

来源:https://www.cnblogs.com/wadmwz/archive/2019/07/01/11112423.html
-Advertisement-
Play Games

數據過濾 SQL的數據過濾, 可以減少不必要的數據行, 從而可以達到提升查詢效率的效果. 比較運算符 在SQL中, 使用WHERE子句對條件進行篩選, 篩選的時候比較運算符是很重要. 上面的比較運算符, 並不是說每個DBMS都支持, 這裡主要說MySQL, 不支持(! )和(! 6000; // 查 ...


數據過濾

SQL的數據過濾, 可以減少不必要的數據行, 從而可以達到提升查詢效率的效果.

比較運算符

在SQL中, 使用WHERE子句對條件進行篩選, 篩選的時候比較運算符是很重要.

上面的比較運算符, 並不是說每個DBMS都支持, 這裡主要說MySQL, 不支持(!>)和(!<)等.

WHERE子句的基本格式是:

SELECT .....(列名) FROM ......(表名) WHERE ......(子句條件)

舉幾個例子:

SELECT name, hp_max FROM heros WHERE hp_max > 6000; // 查詢所有最大生命值大於6000的英雄

SELECT name, hp_max FROM heros WHERE hp_max BETWEEN 5399 AND 6811; // 查詢所有最大生命值在5399到6811之間的英雄

SELECT name, hp_max FROM heros WHERE hp_max IS NULL; // 對hp_max欄位進行空值檢查

邏輯運算符

如果存在多個WHERE條件子句, 可以使用邏輯運算符:

註意的是WHERE子句中同事存在OR和AND的時候, AND執行的優先順序會很高, 也就是說SQL會先處理AND, 再處理OR操作符. 當然, 一種情況除外, 那就是()優先順序最高.

SELECT name, hp_max, mp_max FROM heros WHERE hp_max > 6000 AND mp_max > 1700 ORDER BY (hp_max+mp_max) DESC; // 查詢最大生命值大於6000, 最大法力值大於1700, 並按照最大生命值 + 最大法力值降序排序

SELECT name, role_main, role_assist, hp_max, mp_max, birthdate
FROM heros 
WHERE (role_main IN ('法師', '射手') OR role_assist IN ('法師', '射手')) 
AND DATE(birthdate) NOT BETWEEN '2016-01-01' AND '2017-01-01'
ORDER BY (hp_max + mp_max) DESC; // 查詢主要定位或者次要定位是法師或是射手的英雄, 同時英雄的上線時間不在2016-01-01到2017-01-01之間.

使用通配符進行過濾

上面的條件過濾都是對已知值進行過濾, 如果我們要檢索文本中包含某個詞的所有數據, 這裡就需要使用通配符了, 通配符是我們用來匹配值得一部分的特殊字元, 這裡需要使用到LIKE操作符.

想要匹配任意字元串出現的任意次數, 需要使用(%)通配符, 匹配單個字元, 就需要使用下劃線(_)通配符. (%)和(_)的區別在於前者代表一個或多個字元, 後者只能代表一個字元.

SELECT name FROM heros WHERE name LIKE '% 太 %'; // 匹配包含"太"字的英雄

SELECT name FROM heros WHERE name LIKE '_% 太 %'; // 匹配除了第一個字元外, 包含"太"字的英雄

同樣的, 並不是所有的DBMS都是使用(%) 和(_)來表示多個字元和一個字元的, 具體的DBMS應該查詢具體的手冊.


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

-Advertisement-
Play Games
更多相關文章
  • 一、連接查詢 1、連接查詢建立在有相互關係的兩個表間,進行兩個及兩個以上的表或視圖的查詢。 2、對n張表進行查詢,至少需要n-1個連接表的條件。 二、笛卡爾積(容易造成資料庫宕機) 1、指表中每行元素與其他表的每行均組合,沒有連接條件。 2、假設有兩張表,表A有X條數據,表B有Y條數據,則笛卡爾積查 ...
  • 1.安裝open-vm-tools sudo apt-get install open-vm-tools 2.安裝openjdk sudo apt-get install openjdk-8-jdk 3.安裝配置ssh apt-get install openssh-server 4.在進行了初次登 ...
  • --創建序列create sequence deptno_seqstart with 50increment by 10maxvalue 70cache 3; --為了方便演示,創建了一個和dept表結構相同的deptnew表create table deptnewasselect * from d ...
  • 1:如果同一臺伺服器上安裝有多個MongoDB實例,telegraf.conf 中關於 MongoDB 如何配置?配置數據在【INPUT PLUGINS的[[inputs.mongodb]]】部分。 單個實例配置 錯誤的多實例配置(例如兩個實例); 重啟服務,查看服務狀態,提示錯誤信息如下; 正確的 ...
  • 結果: ...
  • --創建簡單視圖--建立用於查詢員工號、姓名、工資的視圖。create view emp_viewasselect empno,ename,sal from emp; --查詢視圖select * from emp_view; --創建視圖時指定視圖的列的別名create view emp_view ...
  • 鏈接:https://pan.baidu.com/s/1fhfMtmwM_hOAGgYOfNYlkw提取碼:r53a 學習pl/sql的同學,可以看看這本書,講解的很詳細,從入門到精通,大家有什麼不懂得地方也可以互相交流 。。 裡面講解的都有操作截圖,案例,以及源碼 第1章 瞭解Oracle 1.1 ...
  • 一下是安裝ogg過程中遇到的問題和解決辦法,絕對良心乾貨,抽空會寫更詳細的安裝教程。更多精彩內容請 "點擊" OGG 00685 begin time prior to oldest log in log history https://blog.csdn.net/kiwi_kid/article/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...