mysql查询结果导出文件,导入文件
2015-12-23 15:18
627 查看
mysql查询结果导出/输出/写入到文件
方法一:
直接执行命令:
mysql> select count(1) fromtable into outfile'/tmp/test.xls';
Query OK, 31 rows affected (0.00 sec)
在目录/tmp/下会产生文件test.xls
遇到的问题:
mysql> select count(1) fromtable into outfile'/data/test.xls';
报错:
ERROR 1 (HY000): Can't create/write to file '/data/test.xls'(Errcode: 13)
可能原因:mysql没有向/data/下写的权限
方法二:
查询都自动写入文件:
mysql> pager cat > /tmp/test.txt ;
PAGER set to 'cat > /tmp/test.txt'
之后的所有查询结果都自动写入/tmp/test.txt',并前后覆盖
mysql> select * from table ;
30 rows in set (0.59 sec)
在框口不再显示查询结果
注意:这里只是将查询结果分页显示,然后重定向到文件
方法三:
跳出mysql命令行
[root@SHNHDX63-146 ~]# mysql -h 127.0.0.1 -u root -p XXXX -P 3306-e "select * from table" > /tmp/test/txt
--------------------------------------------------------------我是分割线---------------------------------------------
--使用SELECT ... INTO OUTFILE 以逗号分隔字段的方式将数据导入到一个文件中:
点击(此处)折叠或打开
SELECT *
INTO OUTFILE 'C:\\log1.txt' FIELDS TERMINATED BY
',' FROM
log.log1
--将刚刚导出的文件log1.txt导入到表log1相同结构的LOG2中
点击(此处)折叠或打开
LOAD DATA INFILE
'C:\\log1.txt' INTO
TABLE aa.log2 FIELDS TERMINATED BY
',';
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 使用select * into outfile 导出
点击(此处)折叠或打开
SELECT
* INTO OUTFILE
'/tmp/fi.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY
'"' LINES TERMINATED BY
'\n' FROM test.fi;
"2013-04-09 00:06:56","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,10,1004,10,"11","2",100
"2013-04-09 00:06:59","1068029027","EXPORT_INFO","BUY_ITEM_INNER",16,7,304,7,"11","2",70
"2013-04-09 00:08:27","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,2,1004,2,"11","2",20
-- 导入
点击(此处)折叠或打开
LOAD DATA INFILE
'/tmp/fi.txt' INTO
TABLE test.fii FIELDS TERMINATED BY
',' OPTIONALLY ENCLOSED BY
'"' LINES TERMINATED BY '\n';
总结:
FIELDS TERMINATED BY ',' 字段间分割符
OPTIONALLY ENCLOSED BY '"' 将字段包围
对数值型无效
LINES TERMINATED BY '\n' 换行符
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysqldump也有同样功能
点击(此处)折叠或打开
# mysqldump -uroot
-p
-T/tmp test fi
--fields-enclosed-by=\" --fields-terminated-by="\t
方法一:
直接执行命令:
mysql> select count(1) fromtable into outfile'/tmp/test.xls';
Query OK, 31 rows affected (0.00 sec)
在目录/tmp/下会产生文件test.xls
遇到的问题:
mysql> select count(1) fromtable into outfile'/data/test.xls';
报错:
ERROR 1 (HY000): Can't create/write to file '/data/test.xls'(Errcode: 13)
可能原因:mysql没有向/data/下写的权限
方法二:
查询都自动写入文件:
mysql> pager cat > /tmp/test.txt ;
PAGER set to 'cat > /tmp/test.txt'
之后的所有查询结果都自动写入/tmp/test.txt',并前后覆盖
mysql> select * from table ;
30 rows in set (0.59 sec)
在框口不再显示查询结果
注意:这里只是将查询结果分页显示,然后重定向到文件
方法三:
跳出mysql命令行
[root@SHNHDX63-146 ~]# mysql -h 127.0.0.1 -u root -p XXXX -P 3306-e "select * from table" > /tmp/test/txt
--------------------------------------------------------------我是分割线---------------------------------------------
--使用SELECT ... INTO OUTFILE 以逗号分隔字段的方式将数据导入到一个文件中:
点击(此处)折叠或打开
SELECT *
INTO OUTFILE 'C:\\log1.txt' FIELDS TERMINATED BY
',' FROM
log.log1
--将刚刚导出的文件log1.txt导入到表log1相同结构的LOG2中
点击(此处)折叠或打开
LOAD DATA INFILE
'C:\\log1.txt' INTO
TABLE aa.log2 FIELDS TERMINATED BY
',';
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 使用select * into outfile 导出
点击(此处)折叠或打开
SELECT
* INTO OUTFILE
'/tmp/fi.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY
'"' LINES TERMINATED BY
'\n' FROM test.fi;
"2013-04-09 00:06:56","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,10,1004,10,"11","2",100
"2013-04-09 00:06:59","1068029027","EXPORT_INFO","BUY_ITEM_INNER",16,7,304,7,"11","2",70
"2013-04-09 00:08:27","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,2,1004,2,"11","2",20
-- 导入
点击(此处)折叠或打开
LOAD DATA INFILE
'/tmp/fi.txt' INTO
TABLE test.fii FIELDS TERMINATED BY
',' OPTIONALLY ENCLOSED BY
'"' LINES TERMINATED BY '\n';
总结:
FIELDS TERMINATED BY ',' 字段间分割符
OPTIONALLY ENCLOSED BY '"' 将字段包围
对数值型无效
LINES TERMINATED BY '\n' 换行符
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysqldump也有同样功能
点击(此处)折叠或打开
# mysqldump -uroot
-p
-T/tmp test fi
--fields-enclosed-by=\" --fields-terminated-by="\t
相关文章推荐
- MYSQL 5.7 添加新用户
- mysql查询语句in和exists二者的区别和性能影响
- MySQL语句
- Mysql JDBC 连接串参数说明
- 修改MySQL默认引擎
- mysql整型存储字节与最大长度设置
- mycat+mysql集群:实现读写分离,分库分表
- mysql unsupport_db_table_row_format
- MySQL join 使用方法
- mysql截取字符串
- MySQL安装
- mysqldump AUTO_INCREMENT
- discuz mysql 错误 (1045) notconnect
- Mysql 查看定时器 打开定时器 设置定时器时间
- mysql 修改root密码
- MySQL数据库操作常用脚本
- MySQL数据库cmd操作基本命令和加载链接
- 如何在MySQL生成.sql文件
- 对MySQL中字符集的相关设置操作的基本教程
- mysql 用户权限管理