pr,...]]
?
load data infile语句从一个文本文件中以很高的速度读入一个表中。
使用这个命令之前,mysqld进程(服务) 必须已经在运行。
当读取的文本文件不在本机,而是位于服务器上的文本文件时,使用load data infile语句,在服务器主机上你必须有file的权限。
1 、如果你指定关键词low_priority,那么MySQL将会等到没有其他人读取这个表的时候,
才插入数据。例如如下的命令:
?
load data low_priority infile "/home/mark/data.sql" into table Orders;
?
2 、如果指定local关键词,则表明读取的文件在本机,那么必须指定local参数。
3 、replace和ignore参数控制对现有表的唯一键记录重复的处理。
如果你指定replace,新行将代替有相同的唯一键值的现有行。
(1)如果你指定ignore,跳过有唯一键的现有行的重复行的输入。
(2)如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。
FIELDS TERMINATED BY ','表示字段之间用逗号分隔
ENCLOSED BY '\''表示每个字段用双引号括起来
ESCAPED BY '\''表示将系统默认的转移字符替换为单引号
LINES STARTING BY ''表示每行数据开头的字符,可以为单个或多个,默认不是有任何字符
LINES TERMINATED BY '\r\n'表示每行以回车换行符结尾,保证每一条记录占一行
[IGNORE number LINES] 选项表示忽略文件开始处的行数,number表示忽略的行数。
基本上格式上的参数跟SELECT...INTO OUTFILE是一样的
使用LOAD DATA命令将C:\person0。txt文件中的数据导入到test库中的test表
?
LOAD DATA INFILE 'C:\person0.txt' INTO TABLE test.person
?
先删除person表里的数据,然后执行LOAD DATA命令

使用mysqlimport命令导入文本文件
2、使用mysqlimport命令导入文本文件
mysqlimport是一个单独的exe,他提供了许多与LOAD DATA INFILE语句相同的功能
大多数选项直接对应LOAD DATA INFILE子句

mysqlimport的语法如下
?
mysqlimport -u root -p dbname filename.txt [OPTIONS]
--[OPTIONS] 选项
FIELDS TERMINATED BY 'value'
ENCLOSED BY 'value'
ESCAPED BY 'value'
LINES TERMINATED BY 'value'
IGNORE LINES
?
[OPTIONS] 选项基本上与LOAD DATA INFILE 语句是一样的,这里不做介绍了
mysqlimport不能指定导入的表名称,表名称由导入文件名称确定,即文件名作为表名,导入数据之前该表必须存在
使用mysqlimport命令将C:\目录下person.txt文件内容导入到test库
先删除test库的person表的数据
?
DELETE FROM `person`;
?
person.txt文件内容
?
1 green 29 lawer
2 suse 26 dancer
3 evans 27 sports man
4 mary 26 singer
?
命令如下
?
mysqlimport -u root -p test C:\person.txt
?

导入成功

mysqlimport的常见选项:
?
显示帮助消息并退出。
· --columns=column_list, -c column_list
该选项采用用逗号分隔的列名作为其值。列名的顺序指示如何匹配数据文件列和表列。
· --compress,-C
压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)。
· ---debug[=debug_options],-# [debug_options]
写调试日志。debug_options字符串通常是'd:t:o,file_name'。
· --delete,-D
导入文本文件前清空表。
· --fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...,--lines-terminated-by=...
这些选项与LOAD DATA INFILE相应子句的含义相同。参见13.2.5节,“LOAD DATA INFILE语法”。
· --force,-f
忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件。不使用--force,如果表不存在则mysqlimport退出。
· --host=host_name,-h host_name
将数据导入给定主机上的MySQL服务器。默认主机是localhost。
· --ignore,-i
参见--replace选项的描述。
· --ignore-lines=n
忽视数据文件的前n行。
· --local,-L
从本地客户端读入输入文件。
· --lock-tables,-l
处理文本文件前锁定所有表以便写入。这样可以确保所有表在服务器上保持同步。
· --password[=password],-p[password]
当连接服务器时使用的密码。如果使用短选项形式(-p),选项和 密码之间不能有空格。如果在命令行中--password或-p选项后面没有 密码值,则提示输入一个密码。
· --port=port_num,-P port_num
用于连接的TCP/IP端口号。
· --protocol={TCP | SOCKET | PIPE | MEMORY}
使用的连接协议。
· --replace,-r
--replace和--ignore选项控制复制唯一键值已有记录的输入记录的处理。如果指定--replace,新行替换有相同的唯一键值的已有行。如果指定--ignore,复制已有的唯一键值的输入行被跳过。如果不指定这两个选项,当发现一个复制键值时会出现一个错误,并且忽视文本文件的剩余部分。
· --silent,-s
沉默模式。只有出现错误时才输出。
· --socket=path,-S path
当连接localhost时使用的套接字文件(为默认主机)。
· --user=user_name,-u user_name
当连接服务器时MySQL使用的用户名。
· --verbose,