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);
上一篇: Mysql数据导入Redis
下一篇: php中stdClass实例代码应用详解