1.3.3 插入数据

当您创建完数据表,紧接着您需要往数据表中填充数据,您使用LOAD DATA LOCAL INFILEINSERT INTO 的语法。比方说,您需要将如下的数据导入到 pet 的数据表中。

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29

您需要创建一个 pet.txt 的文本文件,其中的每一行代表数据表中的行纪录。每一行使用 tab 分割成数据列。如果遇到空值使用 \N 表示。例如:

Fluffy  Harold  cat     f       1993-02-04      \N
Claws   Gwen    cat     m       1994-03-17      \N
Buffy   Harold  dog     f       1989-05-13      \N
Fang    Benny   dog     m       1990-08-27      \N
Bowser  Diane   dog     m       1979-08-30      1995-07-29
Chirpy  Gwen    bird    f       1998-09-11      \N
Whistler        Gwen    bird    \N      1997-12-09      \N
Slim    Benny   snake   m       1996-04-29      \N

使用下面的语句,将 pet.txt 导入到 pet 表中:

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

运行实例:

mysql> LOAD DATA LOCAL INFILE '/data/www/pet.txt' INTO TABLE menagerie.pet;
Query OK, 8 rows affected (0.02 sec)
Records: 8  Deleted: 0  Skipped: 0  Warnings: 0

如果您是在 windows 下创建、编辑的文件,使用的是 \r\n 行终止符,那么因该使用下面的语句执行:

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

在苹果的机器上运行的 OS X 上,您可能需要使用 \r 作为行终止符。

如果您需要插入单行数据,可以使用 INSERT INTO 语法:

mysql> INSERT INTO pet
    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Query OK, 1 row affected (0.01 sec)

总结:

  • LOAD DATA LOCAL INFILE 在实际的使用中并不常见,但在某一些特殊的场景下使用,了解即可。
  • INSERT INTO 这个语法在 MySQL 中随处可见,必需掌握。

results matching ""

    No results matching ""