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文件就不會出現亂碼了。