mysql 匯出資料

2021-06-08 13:28:03 字數 2496 閱讀 2932

方法一:select...into outfile

mysql> select * from mytbl into outfile '/tmp/mytbl.txt';

檢視mytbl.txt中內容如下:

mysql> system cat /tmp/mytbl.txt
1       name1

2       name2

3       \n

匯出的檔案中資料以製表符分隔,以"\n"為換行符

mysql> system od -c /tmp/mytbl.txt
0000000   1  \t   n   a   m   e   1  \n   2  \t   n   a   m   e   2  \n

0000020   3  \t   \   n  \n

0000025

也可以自己制定分隔符和換行符

匯出成csv格式

mysql> select * from mytbl into outfile '/tmp/mytbl2.txt' fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

mysql> system cat /tmp/mytbl2.txt
"1","name1"

"2","name2"

"3",\n

匯出的檔案一定不能已經存在。(這有效的防止了mysql可能覆蓋重要檔案。)

匯出時登入的mysql賬號需要有file許可權

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 去掉列名行

[root@localhost ~]# od -c /tmp/mytbl3.txt

0000000   1  \t   n   a   m   e   1  \n   2  \t   n   a   m   e   2  \n

0000020   3  \t   n   u   l   l  \n

0000027

匯出成csv格式

[root@localhost ~]#  mysql -uroot -p -e "select * from mytbl" --skip-column-names test|sed -e "s/[\t]/,/" -e "s/$/\r/">/tmp/mytbl4.txt

enter password: 

[root@localhost ~]# od -c /tmp/mytbl4.txt 

0000000   1   ,   n   a   m   e   1  \r  \n   2   ,   n   a   m   e   2

0000020  \r  \n   3   ,   n   u   l   l  \r  \n

null值被處理成字串"null"

方法三:使用mysqldump來匯出

mysqldump程式用於拷貝或者備份表和資料庫。它能夠將表輸出寫成乙個文字資料檔案,或者乙個用於重建錶行的insert語句集。

[root@localhost ~]# mysqldump -uroot -p --no-create-info --tab=/tmp test mytbl

mysqldump使用表名加上乙個.txt字尾來建立乙個資料檔案,所以此命令寫入乙個名為/tmp/mytbl.txt的檔案

匯出成csv格式

[root@localhost ~]# mysqldump -uroot -p --no-create-info --tab=/tmp --fields-enclosed-by="\"" --fields-terminated by="," --lines-terminated-by="\r\n" test mytbl tbl

同時匯出了mytbl,tbl兩張表,資料庫名後面跟多張表則匯出多個表到對應檔案,如果沒有表,則匯出資料庫中的所有表。

null值被處理成\n

總結:對null的處理需求不同,可以選擇不同的匯出方式。方法三匯出的檔名是固定的,對於檔名有特殊要求的情況,不適宜使用,方法三也只能匯出整張表。

方法二可以和linux命令結合使用,靈活性比較大。

MySQL資料匯出

方法一 select.into outfile mysql select from mytbl into outfile tmp mytbl.txt query ok,3 rows affected 0.00 sec 檢視mytbl.txt中內容如下 mysql system cat tmp myt...

MySql資料匯出

mysql use caida 選擇要操作的資料庫 mysql select ip,node,physical cpu,cpu cores,processor,cpumodel,throughtput,use processor,use memory,use disk from three open...

mysql匯出資料

直接匯出某庫全表 包括表設計和表資料 為sql語句 mysqldump h172.16.uroot p somedatabase sometable somewhere table.sql匯出某個表為特定檔案格式 txt,xls 只是資料 可以通過sql自行過濾某些資料 mysql h172.16....