方法一:
在命令列下使用一對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 匯出整個資料庫 ...