创建表后,需要填充它。该 LOAD DATA
和 INSERT
语句是这个有用的。
假设您的宠物记录可以如下所示。(请注意,MySQL需要使用 格式的日期;这可能与您习惯的日期 有所不同。) '
YYYY-MM-DD
'
名称 | 所有者 | 种类 | 性别 | 出生 | 死亡 |
---|---|---|---|---|---|
蓬松 | 哈罗德 | 猫 | F | 1993-02-04 | |
爪子 | 格温 | 猫 | 米 | 1994-03-17 | |
巴菲 | 哈罗德 | 狗 | F | 1989-05-13 | |
ang | 本尼 | 狗 | 米 | 1990-08-27 | |
鲍泽 | 黛安 | 狗 | 米 | 1979-08-31 | 1995-07-29 |
扢 | 格温 | 鸟 | F | 1998-09-11 | |
惠斯勒 | 格温 | 鸟 | 1997-12-09 | ||
瘦 | 本尼 | 蛇 | 米 | 1996-04-29 |
因为您是从一个空表开始的,所以填充它的一种简单方法是为每个动物创建一个包含一行的文本文件,然后使用单个语句将文件的内容加载到表中。
您可以创建一个文本文件pet.txt
,每行包含一个记录,其值由制表符分隔,并按CREATE TABLE
语句中各列的列出顺序给出 。对于缺少的值(例如未知的性别或仍在生活中的动物的死亡日期),可以使用NULL
值。要在文本文件中表示这些字符,请使用 N
(反斜杠,大写N)。例如,惠斯勒小鸟的记录应如下所示(其中值之间的空格是单个制表符):
Whistler Gwen bird N 1997-12-09 N
要将文本文件加载pet.txt
到 pet
表中,请使用以下语句:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
如果在Windows上使用
用作行终止符的编辑器创建了文件 ,则应改用以下语句:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
LINES TERMINATED BY '
';
(在运行macOS的Apple机器上,您可能想使用 LINES TERMINATED BY '
'
。)
您可以根据需要在LOAD DATA
语句中显式指定列值分隔符和行尾标记,但默认值为制表符和换行符。这些足以使语句pet.txt
正确读取文件。
如果该语句失败,则可能是默认情况下您的MySQL安装未启用本地文件功能。有关如何更改此设置的信息,请参见第6.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
直接插入 以表示缺失值。您不会N
像使用那样使用 LOAD DATA
。
从此示例中,您应该能够看到,最初使用多个INSERT
语句而不是单个LOAD DATA
语句来加载记录时会涉及更多类型的输入。