您的位置:首页 > 数据库 > MySQL

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: