MySQL导出数据到文件中的方法
1、导出数据到txt文件中
实例:把数据表studscoreinfo中所有数据导出到指定的位置
方法:select * from 表名 into outfile 指定导出的位置;
mysql> select * from studscoreinfo into outfile "c:/pyfiles/studscoreinfo.txt";
Query OK, 90 rows affected (0.01 sec)
2、导出数据到CSV文件中
实例:把数据表studscoreinfo中所有数据导出到指定的位置
方法:select * from 表名 into outfile 指定导出的位置;
mysql> select * from studscoreinfo into outfile "c:/pyfiles/studscoreinfo.csv"
-> fields terminated by ','
-> optionally enclosed by '"'
-> escaped by '"'
-> lines terminated by '\r\n';
Query OK, 90 rows affected (0.00 sec)
fields terminated by 默认值是'\t',lines terminated by 默认值是'\n',而Windows上的文件换行是'\r\n',Mac OS X是'\r'。
3、导出数据到Excel文件中
如果直接用select * from studscoreinfo into outfile "c:/pyfiles/studscoreinfo.xls";语句导出数据到Excel文件中,此时生成的Excel文件会出现了乱码问题,这是因为MySQL中的studscoreinfo表是采用utf8编码(可以用show create table studscoreinfo;语句查看),而Excel文件则是GB2312编码,故会有乱码。可以采用convert将字段转换成gbk编码:
mysql> select convert((Id) using gbk) as Id,convert((Grade_Classes) using gbk) as Grade_Classes,convert((Seat_Numbers) using gbk) as Seat_Numbers,
-> convert((Names) using gbk) as Names,convert((Chinese_Scores) using gbk) as Chinese_Scores,convert((Math_Scores) using gbk) as Math_Scores,
-> convert((English_Scores) using gbk) as English_Scores,convert((Total_Scores) using gbk) as Total_Scores, convert((Score_Averages) using gbk) as Score_Averages,convert((Remarks) using gbk) as Remarks
-> from studscoreinfo into outfile "c:/pyfiles/studscoreinfo.xls";
Query OK, 90 rows affected (0.01 sec)
这样导出的Excel文件就不会出现乱码了。