### 3.3.3 将数据加载到表中

[](<>)[](<>)[](<>)

创建表后，您需要填充它。这[`加载数据`](load-data.html)和[`插入`](insert.html)语句对此很有用。

假设您的宠物记录可以如此处所示。（注意 MySQL 期望日期在`'*`YYYY-MM-DD`*'`格式;这可能与您习惯的有所不同。）

| 姓名 | 所有者 | 物种 | 性别 | 出生 | 死亡 |
| --- | --- | --- | --- | --- | --- |
| 蓬松的 | 哈罗德 | 猫 | f | 1993-02-04 |  |
| 爪子 | 格温 | 猫 | 米 | 1994-03-17 |  |
| 巴菲 | 哈罗德 | 狗 | f | 1989-05-13 |  |
| 方 | 本尼 | 狗 | 米 | 1990-08-27 |  |
| 鲍泽 | 黛安 | 狗 | 米 | 1979-08-31 | 1995-07-29 |
| 扢 | 格温 | 鸟 | f | 1998-09-11 |  |
| 惠斯勒 | 格温 | 鸟 |  | 1997-12-09 |  |
| 苗条的 | 本尼 | 蛇 | 米 | 1996-04-29 |  |

因为您从一个空表开始，所以填充它的一种简单方法是创建一个包含每个动物的行的文本文件，然后使用单个语句将文件的内容加载到表中。

您可以创建一个文本文件`宠物.txt`每行包含一条记录，其值由制表符分隔，并按列在[`创建表`](create-table.html)陈述。对于缺失值（例如未知性别或仍然活着的动物的死亡日期），您可以使用`空值`价值观。要在文本文件中表示这些，请使用`\N`（反斜杠，大写-N）。例如，Whistler the bird 的记录如下所示（值之间的空格是单个制表符）：

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

加载文本文件`宠物.txt`进入`宠物`表，使用这个语句：

```
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 机器上，您可能希望使用`以“\r”结尾的行`.)

您可以在[`加载数据`](load-data.html)如果您愿意，可以声明，但默认值是制表符和换行符。这些足以让语句读取文件`聚酯食品包装材料txt`正确地

如果该语句失败，则MySQL安装在默认情况下可能没有启用本地文件功能。看见[第6.1.6节，“本地负载数据的安全注意事项”](load-data-local-security.html)，以获取有关如何更改此设置的信息。

当您希望一次添加一条新记录时[`插入`](insert.html)声明很有用。最简单的形式是，按照列在列表中的顺序为每列提供值[`创建表格`](create-table.html)陈述假设黛安得到了一只名叫“泡芙球”的新仓鼠您可以使用[`插入`](insert.html)声明如下：

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

字符串和日期值在此处指定为带引号的字符串。还有[`插入`](insert.html)，您可以插入`无效的`直接表示缺少的值。你不用`\N`就像你对我一样[`加载数据`](load-data.html).

从这个例子中，您应该可以看到，在最初使用多个文件加载记录时，需要进行更多的键入[`插入`](insert.html)声明而不是单一的[`加载数据`](load-data.html)陈述
