欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

txt文件导入mysql数据库

程序员文章站 2022-06-11 08:07:59
...

一、数据列数与表列数对应相等

这种情况是我们经常遇到的,比如txt数据中有5列数据,数据库建立的表也刚好是5列,这时候我们用下列命令即可:

load data infile "txt文件路径" into table 表名 fields terminated by"," lines terminated by"\n";

注意:

  • fields terminated by",":是txt文本中各个字段的分隔符号,我这里是逗号,当然还有其它。
  • lines terminated by"\n":是表示回车代表行分隔符
  • 这里文件路径代表的绝对路径并需要使用双引号(或单引号)包起来,但是表名不必用引号包括。

二、数据列数大于表列数

这种情况不是很常见,但是也有特定需求,比如我们txt数据中有很多列,但是我们并不想将全部列都导入到数据库中,只是将部分列导入。这里以一个例子作为说明:
比如txt数据内容包含5个字段:class,uid,name,address,age
库中表包含3个字段:uid,name,age
也就是说txt文本中我们只要其中的3列数据导入到表中。这个时候使用下列语句就可以了:

load data infile 'G:/test_data/test3.txt' into table user  fields terminated by ','  lines terminated by'\r\n' (@abc,uid,name,@abc,age)

注意

  • @abc表示变量,使用变量作为占位符,将数据中的第一列、第四列赋值给一个变量,导入时等于丢掉这两列数据。

三、数据列数小于表列数

这种情况也算是常见,比如我们建立的表中有一个自增字段id(主键),而txt数据没有该字段,这里同样以一个例子进行说明:
比如txt数据内容包含2个字段:name,grade
库中表包含3个字段:name,grade,id
也就是说表中比txt数据中多了一个id字段。这个时候我们使用下面语句:

load data infile "G:/test_data/test3.txt"into table user fields terminated by"," lines terminated by"\n" (name,grade);