MySQL 命令列匯出 匯入Select 查詢結果

2021-08-29 01:17:59 字數 2109 閱讀 3352

有的時候需要把在一張表中用 select 語句查詢出來的結果儲存到另一張結構相同的表中,可以有幾種方法來實現:

方法一:

在命令列下使用一對sql語句完成該操作:

匯出查詢結果:select語句 into outfile '儲存路徑+檔名';

匯入查詢結果:load data local infile '儲存路徑+檔名' into table 表明 character set utf8;

例如:查詢出資料庫jc1992中表jc_archives中發布時間晚於2023年9月1日的資料並儲存在本地磁碟d的mysqltmp目錄下,儲存為1.sql,在命令列中輸入:

select * from jc_archives where senddate>unix_timestamp('2014-9-1' ) into outfile 'd://mysqltmp/1.sql';
命令列如圖:

1.sql用editplus開啟如圖:

再把儲存查詢結果的1.sql匯入到另一資料庫data_tmp的表archives中,在命令列中輸入:

load data local infile "d://mysqltmp/1.sql" into table archives character set utf8;
命令列如圖:

這樣就把第一張表中的查詢結果匯入了第二張表。

要注意的是在匯入時,兩張表的主鍵或者唯一索引的值不能有重複,否則會跳過不執行或者報警告:

方法二:

匯出查詢結果:使用mysql自帶的轉存資料庫工具musqldump

命令列進入musqldump,使用語句

mysqldump -u使用者名稱 -p -c --default-character-set=字符集 資料庫名 資料表 --where="查詢條件" > 儲存路徑和檔名

匯入查詢結果:mysql -u使用者名稱 -p -c --default-character-set=字符集 資料庫名 < 儲存路徑和檔名

例如:查詢出資料庫jc1992中jc_arctiny的發布時間晚於2023年9月1日的資料並儲存在本地磁碟d的mysqltmp目錄下,儲存為2.sql,在命令列中輸入:

mysqldump -uroot -p -c --default-character-set=utf8 jc1992 jc_arctiny --where="senddate>unix_timestamp('2014-9-1')" > d:\mysqltmp\2.sql
命令列如圖:

2.sql中儲存的是完整的sql語句,用記事本開啟如圖:

再把儲存查詢結果的2.sql匯入到另一資料庫data_tmp的表中,在命令列中輸入:

mysql -uroot -p -c --default-character-set=utf8 data_tmp < d:\mysqltmp\2.sql
命令列如圖:

此時資料庫data_tmp中多了一張表jc_arctiny,表裡的資料正是查詢出來的的那部分資料。

注意:此方法匯出時用的是mysqldump工具,而匯入時用的是mysql命令。而且此方法由於匯出的是完整的sql語句,包括建立和設計資料庫,所以只適用於恢復資料,而不適用於將一張表中的資料匯入到另一張表裡,不過,也可以使用儲存檔案中的insert語句把查詢出的資料插入到另一張表中,過程要周折一些。方法一對於sql語句的設計更靈活一些。

mysql 匯出匯入 命令列

幾個常用用例 1.匯出整個資料庫 mysqldump u使用者名稱 p資料庫名 匯出的檔名2.匯出乙個表 mysqldump u使用者名稱 p資料庫名錶名 匯出的檔名3.匯出乙個資料庫結構 d沒有資料 add drop table在每個create語句之前增加乙個droptable 4.匯入資料庫 ...

MySQL命令列匯入匯出資料

mysql命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 或者直接將windows的環境變數path中新增該目錄 2,匯出資料庫 mysql...

mysql 命令列指令碼匯入匯出

首先,使用mysqldump命令的前提是,在cmd中進入mysql安裝目錄下的bin目錄下,才可以使用該命令。我的mysql安裝在e 盤,所以,首先進入bin目錄下 e program files mysql mysql server 5.0 bin 然後,你就可以使用該命令了。1 匯出整個資料庫 ...