MySQL培訓教程:SELECT條件查詢
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢MySQL培訓教程:SELECT條件查詢,這里介紹如何使用WHERE或者HAVING從句。HAVING從句與WHERE從句的區別是,HAVING表達的是第二條件,在與其他從句配合使用,顯然不能在WHERE子句中的項目使用HAVING。因此本小節緊介紹WHERE從句的使用,HAVING從句的使用方法類似。另外WHERE從句也可以實現HAVING從句的絕大部分功能。
為了限制 SELECT 語句檢索出來的記錄集,可使用WHERE子句,它給出選擇行的條件。可通過查找滿足各種條件的列值來選擇行。
WHERE 子句中的表達式可使用表1-1 中的算術運算符、表1-2 的比較運算符和表1-3的邏輯運算符。還可以使用圓括號將一個表達式分成幾個部分。可使用常量、表列和函數來完成運算。在本教程的查詢中,我們有時使用幾個 MySQL 函數,但是 MySQL 的函數遠不止這里給出的這些。
表3-1 算術運算符
運算符說明運算符說明
運算符 |
說明 |
運算符 |
說明 |
+ |
加 |
* |
乘 |
- |
減 |
/ |
除 |
表3-2 比較運算符
運算符 |
說明 |
運算符 |
說明 |
< |
小于 |
!= 或 <> |
不等于 |
<= |
小于或等于 |
>= |
大于或等于 |
= |
等于 |
> |
大于 |
表3-3 邏輯運算符
運算符 |
說明 |
NOT或
! |
邏輯非 |
OR 或 || |
邏輯或 |
AND或 && |
邏輯與 |
例如,如果你想要驗證你對Bowser的出生日期所做的改變,像這樣精選Bowser的記錄:
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1990-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
輸出證實出生年份現在正確記錄為1990,而不是1909。
字符串比較通常是大小些無關的,因此你可以指定名字為"bowser"、"BOWSER"等等,查詢結果將是相同的。
你能在任何列上指定條件,不只是name。例如,如果你想要知道哪個動物在1998以后出生的,測試birth列:
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
你能組合條件,例如,找出雌性的狗:
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
上面的查詢使用AND邏輯操作符,也有一個OR操作符:
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND和OR可以混用。如果你這樣做,使用括號指明條件應該如何被分組是一個好主意:
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
-> OR (species = "dog" AND sex = "f");
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+