Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

5.3.4.1 选择所有数据

最简单的 SELECT 形式从表中检索所有内容:

mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name     | owner  | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | f    | 1993-02-04 | NULL       |
| Claws    | Gwen   | cat     | m    | 1994-03-17 | NULL       |
| Buffy    | Harold | dog     | f    | 1989-05-13 | NULL       |
| Fang     | Benny  | dog     | m    | 1990-08-27 | NULL       |
| Bowser   | Diane  | dog     | m    | 1979-08-31 | 1995-07-29 |
| Chirpy   | Gwen   | bird    | f    | 1998-09-11 | NULL       |
| Whistler | Gwen   | bird    | NULL | 1997-12-09 | NULL       |
| Slim     | Benny  | snake   | m    | 1996-04-29 | NULL       |
| Puffball | Diane  | hamster | f    | 1999-03-30 | NULL       |
+----------+--------+---------+------+------------+------------+

这种 SELECT 形式使用 *,它是“选择所有列”的缩写。 这在您想要查看整个表时非常有用,例如,在您刚刚加载了初始数据集后。 例如,您可能认为 Bowser 的出生日期不太正确。 查阅原始家谱文件,您发现正确的出生年份应该是 1989 年,而不是 1979 年。

有至少两种方法可以修复此问题:

  • 编辑文件 pet.txt 以纠正错误,然后使用 DELETELOAD DATA 重新加载表格:

    mysql> DELETE FROM pet;
    mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;

    但是,如果您这样做,您还需要重新输入 Puffball 的记录。

  • 使用 UPDATE 语句仅修复错误的记录:

    mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';

    UPDATE 语句仅更改有问题的记录,不需要重新加载表格。

有一种例外情况,即 SELECT * 不包括不可见列。 有关更多信息,请参阅 第 15.1.20.10 节,“不可见列”