MySQL WHERE字句的使用方式與示例詳情


MySQL WHERE字句

在使用MySQL查詢select語句時,可以使使用WHERE字句來指定查詢條件,從FROM字句中間選取適當的數據行和列

  •     可以使用一個或多個以逗號分隔的表,包括各種使用WHERE子句條件。但是WHERE子句的SELECT命令是一個可選部分。
  •     您可以使用WHERE子句指定任何條件。
  •     您可以指定一個以上的條件下使用AND或者OR運算符。
  •     一個WHERE子句中可以使用的分散DELETE或UPDATE的SQL命令指定條件。

WHERE語法格式:

SELECT * FROM 表名 WHERE  查詢條件 <判斷運算,判斷運算1,...>

--示例:
已知數據庫中有以下數據:
    

 

 查詢:查上表年齡在23歲的同學有哪些人!

語句:

SELECT * FROM BEIMU WHERE BEI_AGE='23'

執行結果

 

查詢比23歲大的同學有哪些

  SELECT * FROM BEIMU WHERE BEI_AGE>23

查詢比23歲小的同學有哪些
  SELECT * FROM BEIMU WHERE BEI_AGE<23

查詢年齡不是23歲的同學

  SELECT * FROM BEIMU WHERE BEI_AGE<>23
  SELECT * FROM BEIMU WHERE BEI_AGE!=23

  判定條件其結果取值為TRUE,FALSE,UNKNOWN(未知)

一、判斷運算的語法分類如下:

  • 算術運算符:+    -    *     /(處可以寫成div)%(取值可以寫成mod)
  • 比較運算符:=     >     >=    <    <=      !=(不等於可以寫成<>)
  • 邏輯運算符:&&(邏輯與可以寫成 AND)  || (邏輯或也可以寫成or) NOT(邏輯非)
  • 范圍表達式:between...and...(同樣可表示 表達式 >=   and 表達式   <=)或者 not between...and...(同樣可表示 表達式<   ||  表達式 >)
  • 集    合:in(值,值1,值2...)    not in值,值1,值2...)  (可理解為:in 在...期間...中,not in 不在.....其中,期間,中)
  • 模糊查詢:LIKE    NOT LIKE,通配符使用:%表示0-那個字符,_下划線表示一個字符
  • 位運算符:&(按位與)  |(按位或) 
  • null空值判斷:is null 與is not null,如果使用null=null,null<>null,null=0,null<>0,null=false等都不對

注意:如果是初學者,從文章開始看的,可先暫時對一下內容做個理解,后面我會對GROUP BY、‘having、order by和limit進行詳細分析

二、group by 配合聚合函數一塊使用

COUNT:計數、數、數數;量的計數
MAX:最大值
MIN:最小值
AVG:平均值
SUM:總和、求和、總數
SELECT的查詢條件只能是GROUP BY 的字段或者聚合函數

三、having和where不同,where是從原數據中賽選,having是從查詢的結果中再次篩選

  where子句中不能使用組合函數,having中可以使用

四、order by排序

  默認是升序,也可以在字段后面加ASC(升序)或者DESC(降序),可使用多列排序

五、分頁limit 參數1 ,參數2

  參數1:從第幾行開始查詢,行數從零開始

  參數2:每頁顯示幾行

 

  MySQL中三種方式使用where條件,由好到壞:

  • 在索引中使用where條件過濾不匹配的記錄,這是在存儲引擎層完成的

  • 在使用索引覆蓋來掃描(在Extra列中出現了Using index)來返還記錄,直接從索引中過濾不需要的記錄返回命中結果,這是在MySQL服務層完成的,但無需再返回查詢記錄

  • 從數據層中返回數據,然后過濾不滿足條件記錄,這是在MySQL服務器完成的,MySQL需要從數據表中讀出記錄然后過濾

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM