相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man 页面 (TGZ) - 258.2Kb
Man 页面 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  选择所有数据

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 使用 *,它是 选择所有列 的简写。如果您想查看整个表,例如在您刚刚加载了初始数据集后,这很有用。例如,您可能认为鲍泽的出生日期似乎不太正确。查阅您的原始血统文件,您发现正确的出生年份应该是 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 节,“不可见列”