相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


5.3.4.2 選擇特定列

如前一節所示,擷取整個資料表很容易。只需從 SELECT 陳述式中省略 WHERE 子句即可。但通常您不會想看到整個資料表,特別是當資料表變得龐大時。相反地,您通常更感興趣的是回答特定問題,在這種情況下,您會指定一些關於您想要資訊的約束。讓我們從一些關於寵物的問題來看看一些選擇查詢,這些問題將會回答您。

您可以只從資料表中選擇特定的列。例如,如果您想驗證您對 Bowser 生日所做的變更,請像這樣選擇 Bowser 的記錄

mysql> SELECT * FROM pet WHERE name = 'Bowser';
+--------+-------+---------+------+------------+------------+
| name   | owner | species | sex  | birth      | death      |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+

輸出結果確認年份正確記錄為 1989 年,而不是 1979 年。

字串比較通常不區分大小寫,因此您可以將名稱指定為 '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  |
+----------+-------+---------+------+------------+-------+

ANDOR 可以混合使用,儘管 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  |
+-------+--------+---------+------+------------+-------+