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


MySQL 9.0 参考手册  /  ...  /  将数据加载到表中

5.3.3 将数据加载到表中

创建完表后,您需要填充它。 LOAD DATAINSERT 语句对此很有用。

假设您的宠物记录可以按以下方式描述。(注意,MySQL 期望日期采用 'YYYY-MM-DD' 格式;这可能与您习惯的格式不同。)

名称 主人 种类 性别 出生日期 死亡日期
Fluffy Harold f 1993-02-04
Claws Gwen m 1994-03-17
Buffy Harold f 1989-05-13
Fang Benny m 1990-08-27
Bowser Diane m 1979-08-31 1995-07-29
Chirpy Gwen f 1998-09-11
Whistler Gwen 1997-12-09
Slim Benny m 1996-04-29

由于您是从空表开始的,填充表的一种简单方法是创建一个文本文件,其中包含每个动物的一行记录,然后使用单个语句将文件的内容加载到表中。

您可以创建一个名为 pet.txt 的文本文件,其中每行包含一条记录,值之间用制表符分隔,并按照 CREATE TABLE 语句中列出的顺序给出。对于缺失的值(如性别未知或仍在世的动物的死亡日期),您可以使用 NULL 值。要在文本文件中表示这些值,请使用 \N(反斜杠,大写 N)。例如,Whistler 这只鸟的记录将如下所示(其中值之间的空格是单个制表符字符)

Whistler        Gwen    bird    \N      1997-12-09      \N

要将文本文件 pet.txt 加载到 pet 表中,请使用以下语句

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

如果您在 Windows 上使用使用 \r\n 作为行结束符的编辑器创建了该文件,则应改用以下语句

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
       LINES TERMINATED BY '\r\n';

(在运行 macOS 的 Apple 机器上,您可能需要使用 LINES TERMINATED BY '\r'。)

如果您愿意,可以在 LOAD DATA 语句中显式指定列值分隔符和行结束标记,但默认值为制表符和换行符。这些足以让语句正确读取文件 pet.txt

如果语句失败,可能是您的 MySQL 安装默认情况下未启用本地文件功能。有关如何更改此设置的信息,请参见 第 8.1.6 节,“LOAD DATA LOCAL 的安全注意事项”

当您想要一次添加一条新记录时,INSERT 语句非常有用。在最简单的形式中,您需要为每个列提供值,按照 CREATE TABLE 语句中列出的顺序给出。假设 Diane 买了一只名叫 Puffball. 的新仓鼠。您可以使用以下 INSERT 语句添加一条新记录

mysql> INSERT INTO pet
       VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

字符串和日期值在此处指定为带引号的字符串。此外,使用 INSERT,您可以直接插入 NULL 来表示缺失的值。您不必像使用 LOAD DATA 一样使用 \N

从这个例子中,您可以看到,与使用单个 LOAD DATA 语句相比,使用多个 INSERT 语句来加载记录初始会涉及更多键入操作。