一、从文件加载数据到Table中
1. 使用LOAD DATA INFILE加载 (参考手册:http://dev.mysql.com/doc/refman/5.5/en/load-data.html)
注意
- 用户必须有File_Priv权限才能做导入的工作。
1.1. 加载CSV文件
如果某个table栏位的数据为NULL的时,在CSV中记作\N。
注意 :
- WINDOWS环境下,文本文件是以\r\n作为作为每一行的终止符。在用load data时需要加上 “LINES TERMINATED BY '\r\n'”才能正确的读取数据文件的每一行。如果只是以\n结尾,会出现一些奇怪的现象,例如浮点数长度不对,\N结尾的数据行不能正确识别。
- 导入文件的字符集,使用CHARACTER SET。例如简体中文,设置为CHARACTER SET GBK
-- 其中REPLACE是指,当导入的数据中的主键和表中主键重复的时候,则覆盖表中的数据
--
-- 例子表pet的结构如下:
-- mysql> desc pet;
-- +---------+-------------+------+-----+---------+-------+
-- | Field | Type | Null | Key | Default | Extra |
-- +---------+-------------+------+-----+---------+-------+
-- | name | varchar(60) | NO | PRI | NULL | |
-- | owner | varchar(60) | YES | | NULL | |
-- | species | varchar(60) | YES | | NULL | |
-- | sex | char(1) | YES | | NULL | |
-- | birth | date | YES | | NULL | |
-- | death | date | YES | | NULL | |
-- +---------+-------------+------+-----+---------+-------+
-- 6 rows in set (0.00 sec)
--
-- pet.txt文件内容
-- Bowser,Diane,dog,m,1979-08-31,1995-07-29
-- Buffy,Harold,dog,f,1989-05-13,1995-07-29
-- Chirpy,Gwen,bird,f,1998-09-11,1995-07-29
-- Claws,Gwen,cat,m,1994-03-17,1995-07-29
-- Fang,Benny,dog,m,1990-08-27,1995-07-29
-- Fluffy,Harold,cat,f,1993-02-04,1995-07-29
-- Puffball,王五,\N,f,1999-03-30,1995-07-29
-- Slim,李四,snake,m,1996-04-29,1995-07-29
-- Whistler,张三,bird,,\N,1995-07-29
--
LOAD DATA INFILE 'c:/pet.txt' REPLACE INTO TABLE pet CHARACTER SET GBK FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';