在mysql中,可以使用select語句和WHERE關鍵字來實現條件查詢,實現語句為“SELECT 字段名 FROM 數據表 WHERE 查詢條件;”;SELECT語句用于查詢數據,而WHERE關鍵字用于指定查詢條件。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
在mysql中,可以使用SELECT語句和WHERE關鍵字來實現條件查詢。
SELECT 語句可以查詢數據。查詢數據是指從數據庫中根據需求,使用不同的查詢方式來獲取不同的數據,是使用頻率最高、最重要的操作。
WHERE關鍵字用于指定查詢條件。如果需要有條件的從數據表中查詢數據,可以使用?WHERE?關鍵字。
語法格式如下:
SELECT?字段名?FROM?數據表?WHERE?查詢條件;
查詢條件可以是:
單一條件的查詢語句
單一條件指的是在 WHERE 關鍵字后只有一個查詢條件。
例 1
在 tb_students_info 數據表中查詢身高為 170cm 的學生姓名,SQL 語句和運行結果如下。
mysql>?SELECT?name,height?FROM?tb_students_info ????->?WHERE?height=170; +-------+--------+ |?name??|?height?| +-------+--------+ |?Susan?|????170?| +-------+--------+ 1?row?in?set?(0.17?sec)
可以看到,查詢結果中記錄的 height 字段的值等于 170。如果根據指定的條件進行查詢時,數據表中沒有符合查詢條件的記錄,系統會提示“Empty set(0.00sec)”。
例 2
在 tb_students_info 數據表中查詢年齡小于 22 的學生姓名,SQL 語句和運行結果如下。
mysql>?SELECT?name,age?FROM?tb_students_info ????->?WHERE?age<p>可以看到,查詢結果中所有記錄的 age 字段的值均小于 22 歲,而大于或等于 22 歲的記錄沒有被返回。</p><p><span style="font-size: 18px;"><strong>多條件的查詢語句</strong></span></p><p>在 WHERE 關鍵詞后可以有多個查詢條件,這樣能夠使查詢結果更加精確。多個查詢條件時用邏輯運算符 AND(&&)、OR(||)或 XOR 隔開。</p>
-
AND:記錄滿足所有查詢條件時,才會被查詢出來。
-
OR:記錄滿足任意一個查詢條件時,才會被查詢出來。
-
XOR:記錄滿足其中一個條件,并且不滿足另一個條件時,才會被查詢出來。
例 3
在 tb_students_info 表中查詢 age 大于 21,并且 height 大于等于 175 的學生信息,SQL 語句和運行結果如下。
mysql>?SELECT?name,age,height?FROM?tb_students_info? ????->?WHERE?age>21?AND?height>=175; +--------+------+--------+ |?name???|?age??|?height?| +--------+------+--------+ |?Henry??|???23?|????185?| |?Jim????|???24?|????175?| |?Thomas?|???22?|????178?| +--------+------+--------+ 3?rows?in?set?(0.00?sec)
可以看到,查詢結果中所有記錄的 age 字段都大于 21 且 height 字段都大于等于 175。
例 4
在 tb_students_info 表中查詢 age 大于 21,或者 height 大于等于 175 的學生信息,SQL 語句和運行結果如下。
mysql>?SELECT?name,age,height?FROM?tb_students_info? ????->?WHERE?age>21?OR?height>=175; +--------+------+--------+ |?name???|?age??|?height?| +--------+------+--------+ |?Dany???|???25?|????160?| |?Green??|???23?|????158?| |?Henry??|???23?|????185?| |?Jane???|???22?|????162?| |?Jim????|???24?|????175?| |?Lily???|???22?|????165?| |?Susan??|???23?|????170?| |?Thomas?|???22?|????178?| |?Tom????|???23?|????165?| +--------+------+--------+ 9?rows?in?set?(0.00?sec)
可以看到,查詢結果中所有記錄的 age 字段都大于 21 或者 height 字段都大于等于 175。
例 5
在 tb_students_info 表中查詢 age 大于 21,并且 height 小于 175 的學生信息和 age 小于 21,并且 height 大于等于 175 的學生信息,SQL 語句和運行結果如下。
mysql>?SELECT?name,age,height?FROM?tb_students_info? ????->?WHERE?age>21?XOR?height>=175; +-------+------+--------+ |?name??|?age??|?height?| +-------+------+--------+ |?Dany??|???25?|????160?| |?Green?|???23?|????158?| |?Jane??|???22?|????162?| |?Lily??|???22?|????165?| |?Susan?|???23?|????170?| |?Tom???|???23?|????165?| +-------+------+--------+ 7?rows?in?set?(0.00?sec)
可以看到,查詢結果中所有記錄的 age 字段都大于 21 且 height 字段都小于 175。tb_students_info 數據表中沒有 age 字段小于 21 且 height 字段大于等于 175 的記錄。
OR、AND 和 XOR 可以一起使用,但是在使用時要注意運算符的優先級。
查詢條件越多,查詢出來的記錄就會越少。因為,設置的條件越多,查詢語句的限制就更多,能夠滿足所有條件的記錄就更少。為了使查詢出來的記錄正是自己想要的,可以在 WHERE 語句中將查詢條件設置的更加具體。
【相關推薦:mysql視頻教程】