mysql批量导入导出数据

转载 2015年07月06日 22:00:09

常用如下:
Load Data InFile ‘C:/Data.txt’ Into Table TableTest Lines Terminated By ‘\r\n’;
这个语句,字段默认用制表符隔开,每条记录用换行符隔开,在Windows下换行符为“\r\n”

C:/Data.txt 文件内容如下面两行:
1 A
2 B
“1”和“A”之间有一个制表符
这样就导进两条记录了。

自定义语法
Load Data InFile ‘C:/Data.txt’ Into Table TableTest Fields Terminated By ‘,’ Enclosed By ‘”’ Escaped By ‘”’ Lines Terminated By ‘\r\n’;

Fields Terminated By ‘,’ Enclosed By ‘”’ Escaped By ‘”’
表示每个字段用逗号分开,内容包含在双引号内

Lines Terminated By ‘\r\n’;
表示每条数据用换行符分开

和 Load Data InFile 相反的是
Select * From TableTest Into OutFile ‘C:/Data_OutFile.txt’;
把表的数据导出

我们的示例文本文件:
“我爱你”,”20”,”相貌平常,经常耍流氓!哈哈”
“李奎”,”21”,”相貌平常,经常耍流氓!哈哈”
“王二米”,”20”,”相貌平常,经常耍流氓!哈哈”
“老三”,”24”,”很强”
“老四”,”34”,”XXXXX”
“老五”,”52”,”*%¥”
“小猫”,”45”,”中间省略。。。”
“小狗”,”12”,”就会叫”
“小妹”,”21”,”PP的很”
“小坏蛋”,”52”,”表里不一”
“上帝他爷”,”96”,”非常英俊”
“MM来了”,”10”,”。。。”
“歌颂党”,”20”,”社会主义好”
“人民好”,”20”,”的确是好”
“老高”,”10”,”学习很好”
“斜三”,”60”,”眼睛斜了”
“中华之子”,”100”,”威武的不行了”
“大米”,”63”,”我爱吃”
“苹果”,”15”,”好吃”
我们的示例表结构:
CREATE TABLE t0 (
id bigint(20) unsigned NOT NULL auto_increment,
name char(20) NOT NULL,
age tinyint(3) unsigned NOT NULL,
description text NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY idx_name (name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

mysql> load data infile ‘/tmp/t0.txt’ ignore into table t0 character set gbk fields terminated by ‘,’ enclosed by ‘”’ lines terminated by ‘\n’ (name,age,description);

Query OK, 19 rows affected (0.01 sec)
Records: 19 Deleted: 0 Skipped: 0 Warnings: 0

mysql> select * from t0;
+—-+———-+—–+—————————-+
| id | name | age | description |
+—-+———-+—–+—————————-+
| 1 | 我爱你 | 20 | 相貌平常,经常耍流氓!哈哈 |
| 2 | 李奎 | 21 | 相貌平常,经常耍流氓!哈哈 |
| 3 | 王二米 | 20 | 相貌平常,经常耍流氓!哈哈 |
| 4 | 老三 | 24 | 很强 |
| 5 | 老四 | 34 | XXXXX |
| 6 | 老五 | 52 | *%¥ |
| 7 | 小猫 | 45 | 中间省略。。。 |
| 8 | 小狗 | 12 | 就会叫 |
| 9 | 小妹 | 21 | PP的很 |
| 10 | 小坏蛋 | 52 | 表里不一 |
| 11 | 上帝他爷 | 96 | 非常英俊 |
| 12 | MM来了 | 10 | 。。。 |
| 13 | 歌颂党 | 20 | 社会主义好 |
| 14 | 人民好 | 20 | 的确是好 |
| 15 | 老高 | 10 | 学习很好 |
| 16 | 斜三 | 60 | 眼睛斜了 |
| 17 | 中华之子 | 100 | 威武的不行了 |
| 18 | 大米 | 63 | 我爱吃 |
| 19 | 苹果 | 15 | 好吃 |
+—-+———-+—–+—————————-+
19 rows in set (0.00 sec)

我来说明一下相关的参数
关于我的导入语句,我现在直说两个,其他的参考手册。
character set gbk;

这个字符集一定要写,要不然就会乱码或者只导入一部分数据。

ignore into table

因为name 列加了唯一索引,加这个是为了避免重复数据插入报错。

加入我们再次运行这个导入语句就会发现
Query OK, 0 rows affected (0.00 sec)
Records: 19 Deleted: 0 Skipped: 19 Warnings: 0
没有任何值导入,因为里面已经有了相同的值。

这里也可以用replace into table
MySQL会把相同的先干掉,再插入新的值。
mysql> load data infile ‘/tmp/t0.txt’ replace into table t0 character set gbk fields terminated by ‘,’ enclosed by ‘”’ lines terminated by ‘\n’ (name,age,description);
Query OK, 38 rows affected (0.00 sec)
Records: 19 Deleted: 19 Skipped: 0 Warnings: 0

mysql> select * from t0;
+—-+———-+—–+—————————-+
| id | name | age | description |
+—-+———-+—–+—————————-+
| 20 | 我爱你 | 20 | 相貌平常,经常耍流氓!哈哈 |
| 21 | 李奎 | 21 | 相貌平常,经常耍流氓!哈哈 |
| 22 | 王二米 | 20 | 相貌平常,经常耍流氓!哈哈 |
| 23 | 老三 | 24 | 很强 |
| 24 | 老四 | 34 | XXXXX |
| 25 | 老五 | 52 | *%¥ |
| 26 | 小猫 | 45 | 中间省略。。。 |
| 27 | 小狗 | 12 | 就会叫 |
| 28 | 小妹 | 21 | PP的很 |
| 29 | 小坏蛋 | 52 | 表里不一 |
| 30 | 上帝他爷 | 96 | 非常英俊 |
| 31 | MM来了 | 10 | 。。。 |
| 32 | 歌颂党 | 20 | 社会主义好 |
| 33 | 人民好 | 20 | 的确是好 |
| 34 | 老高 | 10 | 学习很好 |
| 35 | 斜三 | 60 | 眼睛斜了 |
| 36 | 中华之子 | 100 | 威武的不行了 |
| 37 | 大米 | 63 | 我爱吃 |
| 38 | 苹果 | 15 | 好吃 |
+—-+———-+—–+—————————-+
19 rows in set (0.00 sec)

(name,age,description);

这些也就是具体的表属性了,指明这个就可以导入想要的数据。
原文:http://blog.sina.com.cn/s/blog_605f5b4f0100zoqb.html

Mysql 大量数据快速导入导出

【实验背景】项目中需要对数据库中一张表进行重新设计,
  • xiaobaismiley
  • xiaobaismiley
  • 2014年11月11日 21:21
  • 47261

图解SSIS批量导入Excel文件

 将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.1、建立测试excel文件,假设有a b c d四个字段,保存...
  • jinjazz
  • jinjazz
  • 2008年07月25日 15:21
  • 23294

MySQL批量导入Excel、txt数据

我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作。网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对...
  • yuanbohx
  • yuanbohx
  • 2011年07月31日 15:27
  • 44247

Mysql大量数据快速导入导出

一般的数据备份用 :mysql路径+bin/mysqldump -u 用户名 -p 数据库名 > 导出的文件名  数据还原是:到mysql命令行下面,用:source   文件名;的方法。 但是这种方...
  • u011305922
  • u011305922
  • 2015年02月06日 17:26
  • 5224

文件夹批量导入多个txt文件到mysql及问题解决

很多时候需要从一个文件夹导入多个格式已经固定的txt文件到mysql数据库的一个表中,解决办法分为 “导入一个txt文件到mysql”和“导入多个txt文件”两个步骤。...
  • u010858605
  • u010858605
  • 2016年12月27日 15:40
  • 3695

MySQL批量导入数据SQL语句(CSV数据文件格式)

load data local infile 'd:\aa.txt' replace into table e_voidcard FIELDS TERMINATED BY ',' ENCLOSED B...
  • seulww
  • seulww
  • 2014年02月17日 17:08
  • 2915

MySQL 批量导入sql文件

cmd -->mysql-->输入密码--< source sql文件的位置。
  • qq_32423845
  • qq_32423845
  • 2017年08月31日 14:24
  • 137

批量导入sql文件(shell脚本)

内容如下: #!/bin/bash p="/tmp" dbUser='root' dbPassword='123' dbName='zh' cd $p; for f in `ls $p/*.sql` ...
  • ZH5610
  • ZH5610
  • 2017年05月31日 17:53
  • 797

MySQL批量生成多个表以及批量导入txt文本

以下代码是批量生成t00,t01,t022……tff共256个表(反引号显示不出来,见图)。 需注意的是prepare bbb from @v_sql;这行代码中的@v_sql不能使用带反引号的变量...
  • qq_20745901
  • qq_20745901
  • 2017年05月09日 16:52
  • 478

java批量导入excel到Mysql数据库

package com.google.i_sales.service.data;import java.io.File;import java.io.FileInputStream;import ja...
  • wxl2012
  • wxl2012
  • 2010年01月21日 10:04
  • 5336
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql批量导入导出数据
举报原因:
原因补充:

(最多只允许输入30个字)