3.3.4.2 选择特定行
如上一部分所示,很容易检索整个 table。只需从SELECT语句中省略WHERE
子句。但通常您不希望看到整个 table 格,尤其是当 table 格变大时。取而代之的是,您通常对回答特定问题更感兴趣,在这种情况下,您可以对所需信息指定一些约束。让我们从与宠物有关的问题来看一些选择查询。
您只能从 table 中选择特定的行。例如,如果要验证对 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 |
+-------+--------+---------+------+------------+-------+
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可以混合使用,尽管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 |
+-------+--------+---------+------+------------+-------+