1.3.3 插入数据
当您创建完数据表,紧接着您需要往数据表中填充数据,您使用LOAD DATA LOCAL INFILE
和 INSERT 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 中随处可见,必需掌握。