mysql导出数据的方法
mysql导出数据的方法
一、select into outfile "filename"语句
例如
mysql> select * from mytbl into outfile '/tmp/mytbl.txt';
查看mytbl.txt中内容如下
mysql> system cat /tmp/mytbl.txt
1 name1
2 name2
3 \N
导出成csv格式
mysql> select * from mytbl into outfile '/tmp/mytbl2.txt' fields terminated by ',' enclosed by '"' lines terminated by '\r\n';
查看mytbl.txt中内容如下:
mysql> system cat /tmp/mytbl2.txt
"1","name1"
"2","name2"
"3",\N
使用时需要注意的地方
1、导出的文件一定不能已经存在。(这有效的防止了mysql可能覆盖重要文件。)
2、导出时登录的mysql账号需要有FILE权限
3、null值被处理成\N
二、重定向mysql程序的输出
例如
[root@localhost ~]# mysql -uroot -p -e "select * from mytbl" --skip-column-names test>/tmp/mytbl3.txt
Enter password:
[root@localhost ~]# cat /tmp/mytbl3.txt
1 name1
2 name2
3 NULL
--skip-column-names 去掉列名行
导出成csv格式
[root@localhost ~]# mysql -uroot -p -e "select * from mytbl" --skip-column-names test|sed -e "s/[\t]/,/" -e "s/$/\r/">/tmp/mytbl4.txt
使用时需要注意的地方
null值被处理成字符串"NULL"
三:使用mysqldump来导出
mysqldump程序用于拷贝或者备份表和数据库。它能够将表输出写成一个文本数据文件,或者一个用于重建表行的insert语句集。
例如
1、导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2、导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3、导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table