MySQL之where的條件查詢

2020-12-16 彼岸end

各位小夥伴們大家好,好久不見哈,在之前的文章中,小編介紹了一些資料庫的相關知識,這次小編要介紹的是MySQL當中的條件查詢

條件查詢:where子句後跟條件

首先,我們需要了解一些運算符。

>,<,<=,>=,=.<>(不等於)between......andin(集合)likeis nulland 或者 &&or 或 ||not 或 !我們要查詢這張學生表裡的內容:

查詢年齡大於20的學生:

select * from student1 where age>20;

查詢年齡大於等於20的人:

select * from student1 where age>=20;

依此類推,如果要查詢年齡小於或者小於等於或者等於多少歲,改變一下運算符和數字就好了。小編就不一一演示了。(注意等於寫一個等號就可以了)。

查詢年齡不等於20歲:

select * from student1 where age !=20;

也可以用這種方式:select * from student1 where age <> 20;

查詢結果:

查詢在年齡大於等於18,小於等於20之間的人:

方法1:select * from student1 where age>=18 && age<=20;

方法2:select * from student1 where age>=18 and age<=20;

方法3:select * from student1 where age between 18 and 20;

查詢年齡16,18,19的學生信息:

方法1:select * from student1 where age=16 or age=18 or age=19;

方法2:select * from student1 where age in(16,18,19);

查詢數學成績為null的學

生信息:select * from student1 where math is null;

結果為空,說明表裡的學生都有數學成績。

查詢數學成績不為空的學生信息:select * from student1 where math is not null;

關於MySQL中where的條件查詢,小編就先說到這裡,很簡單的條件查詢,只是where後面加條件,然後再簡單的翻譯一下英語,去理解就好了。希望這篇文章可以幫到大家,也歡迎各位小夥伴補充和糾錯。接下來的文章中小編會講模糊查詢(like)

關於MySQL小編講的比較跳,前期的一些基礎知識,小夥伴們需要自行去了解,小編在之後的文章中也會做相關補充。

相關焦點

  • mysql結果去重和條件查詢where的使用
    等等下面介紹今天的話題,在mysql查詢結果中去重,比如一個表中欄位關係是一對多,或者多對多的關係。我們需要用到關鍵詞DISTINCT實際運用到的案例在項目中一個ip訪問多次你的網站,但是結果裡面不需要看到重複的ip,這個時候DISTINCT就需要排上用處了。我們上demo實際運行一下。
  • mysql條件查詢,最簡單的一種,你知道嗎?
    在上一篇文章中我們學習了在php中怎樣查詢資料庫中的數據,哪些數據都是直接獲取一個表中的所有數據,全部拿過來,沒有經過過濾,很多數據對於我們來說暫時是用不上的,這就相當於浪費了帶寬,不利於提高數據處理的效率,所以,我們非常有必要在抓取數據的時候進行過濾,今天就介紹mysql的條件查詢,最簡單的一種
  • 玩轉Mysql系列 - 第25篇:sql中where條件在資料庫中提取與應用淺析
    索引的終止查找範圍由b < 8決定;在確定了查詢的起始、終止範圍之後,SQL中還有哪些條件可以使用索引idx_t1_bcd過濾?根據SQL,固定了索引的查詢範圍[(2,2,2),(8,8,8))之後,此索引範圍中並不是每條記錄都是滿足where查詢條件的。例如:(3,1,1)不滿足c > 1的約束;(6,4,4)不滿足d != 4的約束。
  • SQL中where條件的提取
    是 個冗長而複雜的過程,而一條sql中where條件的提取可以相對的歸納出幾個步驟。SQL中where條件的提取簡單歸納為三步:index Key - first key/last key-確定索引結構中查詢範圍index Filter - 確定索引中的過濾條件(
  • MySQL全面瓦解—子查詢和組合查詢
    from型子查詢:把內層的查詢結果當成臨時表,供外層sql再次查詢,所以支持的是表子查詢。  where或having型子查詢:指把內部查詢的結果作為外層查詢的比較條件,支持標量子查詢(單列單行)、列子查詢(單列多行)、行子查詢(多列多行)。
  • SQL 查詢優化之 WHERE 和 LIMIT 使用索引的奧秘
    查詢結果:第一條要5.018s,第二條0.016s為什麼會是這樣的結果呢?第一,acct_id和create_time都有索引,不應該出現5s查詢時間這麼慢啊 仔細觀察會發現,索引只使用了idx_create_time,沒有用到idx_acct_id。這能解釋第一條sql很慢,因為where查詢未用到索引,那麼第二條為什麼這麼快?看起來匪夷所思,其實搞清楚mysql查詢的原理之後,其實很簡單。
  • 06-mysql基礎-mysql中的DQL-子查詢
    在上一期05-mysql基礎-mysql中的DQL-連接查詢的推文中我們學習了mysql的連接查詢知識,本期我們將繼續學習DQL中的子查詢。子查詢介紹含義:出現在其他語句中的select語句,成為子查詢或內查詢外部的查詢語句,成為主查詢或外查詢分類:按子查詢出現的位置: select後面 僅支持標量子查詢 from後面 支持表子查詢 where或having後面 支持標量子查詢(*) 列子查詢(*) 行子查詢
  • 聊聊mysql分組查詢group by以及分組條件having的用法
    今天和大家一起學習一下mysql的分組查詢group by的使用方法,也是重新回憶和複習一下。我們來看一下分組查詢的語法:1、語法:group by + 分組的欄位;下面我們來看一張學生表信息:我們現在需要實現這樣一個需求:1、按性別分組,分別查詢出男、女學生的數學平均分
  • mysql的查詢、子查詢及連接查詢
    查詢的五種子句where子句(條件查詢):按照「條件表達式」指定的條件進行查詢。where則是執行所有數據來工作的。子查詢1、where型子查詢(把內層查詢結果當作外層查詢的比較條件),只是右連接是以右表為主表,會將右表所有數據查詢出來,而左表則根據條件去匹配,如果左表沒有滿足條件的行,則左邊默認顯示NULL。
  • Mysql使用exists的子查詢
    形式:where exists ( 任何子查詢 )含義:該子查詢如果「有數據結果」, 則該exists()的結果為「true」>該子查詢如果「沒有數據結果」,則該exists()的結果為「false」特別注意:1,該子查詢,如果其僅僅是為了得到「有沒有數據」的結果,則通常此時對主查詢就失去應用意義;2,實際上,該子查詢,通常都需要在子查詢(內部)中來使用主查詢(外部)的某些欄位作為條件數據,這樣才能具有一定的實用意義
  • MySQL 這該死的 「IN (子查詢)」
    *,(SELECT MAX(id) FROM t2 WHERE t1.id = t2.id) FROM t1 WHERE t1.id%2 = 0;從上我們不難發現:對於「非關聯子查詢」,子查詢只用執行一次,執行完後結果會被存入到臨時表,不管這一次是走上索引了,還是全表掃描,最大成本是一次全表掃描。
  • MySQL如何完成一次查詢?
    那麼從發出一條sql指令到返回結果mysql都做了什麼事情呢?mysql完成一次查詢過程是比較複雜的,在說明查詢過程前先介紹一下它的基礎概念和結構原理來幫助理解。下面從四個方面介紹,分別是mysql語句,mysql結構原理,mysql查詢過程,最後設置幾個有趣問題。
  • mysql資料庫select查詢語句
    select的相關語句在mysql中用的非常多,介紹一下。select語句的介紹1 select * from 表名;*(代表表中的所有欄位)2 select distinct 欄位名 from 表名 ; distinct 去掉重複欄位3 select * from 表名 where
  • mysql中的where和having的區別
    分享關於mysql中的where和having子句的區別,本文主要分享對象為剛剛接觸sql的新人,下面將結合實際案例分析:下面以一個例子來具體的講解:1. where和havinghaving可以用的前提是我已經篩選出了addtime欄位,在這種情況下和where的效果是等效的,但是如果我沒有select addtime就會報錯!!
  • 「看這篇就夠了」Mysql join條件是要寫在on裡還是在where裡?
    我們先建兩個表和添加一批數據,注意只有a表的f1有索引,a表和B表的數據不完全一致:結果集區別上圖可以看出,結果集是不一樣的,條件寫在ON裡,數據有6條,比條件放在where裡面多出2條。2、順序掃描b表,每一條數據跟join_buffer的a的數據進行on條件判斷,匹配則放入結果集中。最後a中未匹配的補上null,合併到結果集中返回。以上這種查找方法就是Mysql的Block Nexted Loop Join(簡稱BNL)算法。
  • MySql之基礎語法篇
    MySql之基礎語法篇 對於mysql來說,存儲引擎,sql優化,慢sql分析,存儲過程,數據結構,事務,並發,鎖等等,感覺每一部分都可以延伸出來一本書的知識,對於剛剛步入工作的我來說想要深入研究還太過遙遠,只能以後討論了,不過對於我這個剛剛從事計算機行業的人來說,一些基本功還是具備的,敲了這麼長時間的代碼,就在這裡做個簡單的記錄吧!
  • 原創MySql專題之第二篇--連接查詢和子查詢
    select e.ename,d.dname from emp e,dept d;但不能使用as若兩張表進行連接查詢的時候沒有任何條件限制,最終的查詢總數是兩張表記錄條數的乘積為了避免笛卡爾積現象的發生,必須在進行表連接的時候添加限制條件例一:查詢每一個員工所在的部門名稱,要求最終顯示員工和對應的部門名
  • 面對MySQL 查詢索引失效,程式設計師的六大優化技巧!
    第二步查詢緩存:建立連接之後,mysql拿到一個查詢請求後,會先查詢緩存中之前是否執行過這條語句,如果查詢緩存命中,則查詢結果直接返回給客戶端,如果查詢緩存不命中,就會繼續後面的執行階段。完成以後,執行結果會被存入查詢緩存中。大多數情況下不建議使用查詢緩存。
  • MySQL 單表查詢
    1.通過from找到將要查詢的表   2.where規定查詢條件,在表記錄中逐行進行查詢並篩選出符合規則的記錄   3.將查到的記錄進行欄位分組group by,如果沒有進行分組,則默認為一組   4.將分組得到的結果進行having篩選,可使用聚和函數(where時不可使用聚合函數)   5.執行select準備列印   6.執行distinct
  • 如何查看 sql 查詢是否用到索引 ( mysql )
    如果將主鍵置於where列表中,mysql就能將該查詢轉換為一個常量eq_ref 唯一性索引掃描,對於每個索引鍵,表中只有一條記錄與之匹配。常見於主鍵索引和唯一索引 區別於const eq_ref用於聯表查詢的情況ref 非唯一索引掃描,返回匹配某個單獨值的所有行,本質上也是一種索引訪問,它返回所有匹配某個單獨值的行,然而,他可能會找到多個符合條件的行,所以他應該屬於查找和掃描的混合體range 只檢索給定範圍的行,使用一個索引來選擇行,一般是在where中出現between、<、>、in等查詢,