這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
database:mysql:exportandimport [2013/12/19 15:14] ali88 |
database:mysql:exportandimport [2013/12/24 15:49] (目前版本) ali88 |
||
---|---|---|---|
行 36: | 行 36: | ||
+----+--------------+--------------------------+ | +----+--------------+--------------------------+ | ||
30 rows in set (0.00 sec) | 30 rows in set (0.00 sec) | ||
- | </code>將此MySQL select出的資料匯出成一個名為AAA.txt純文字檔。<code>mysql> select * into outfile 'AAA.txt' fields terminated by ',' lines terminated by '\n' from Ball;</code>關鍵字及注意事項書明<code> | + | </code>將此MySQL select出的資料匯出成一個名為AAA.txt純文字檔。<code>mysql> select * into outfile 'AAA.txt' fields terminated by ',' lines terminated by '\n' from Ball; |
+ | |||
+ | Query OK, 30 rows affected (0.01 sec) | ||
+ | </code>關鍵字及注意事項書明<code> | ||
* into outfile ===>匯出一個名為AAA.txt純文字資料檔 | * into outfile ===>匯出一個名為AAA.txt純文字資料檔 | ||
* fields terminated by ',' ===>定義欄位與欄位之間以","分開(忽略不寫,預設以"tab"分開) | * fields terminated by ',' ===>定義欄位與欄位之間以","分開(忽略不寫,預設以"tab"分開) | ||
* lines terminated by '\n' ===>定義以"\n"換行(列)(忽略不寫,預設以"\n"分開,另外windows 是以 \r\n來換行) | * lines terminated by '\n' ===>定義以"\n"換行(列)(忽略不寫,預設以"\n"分開,另外windows 是以 \r\n來換行) | ||
* 此table 是以utf8存成資料頁,匯出來的資料就是utf8編碼 | * 此table 是以utf8存成資料頁,匯出來的資料就是utf8編碼 | ||
- | * 以此範例若沒指定匯出路徑,AAA.txt是匯在/var/lib/mysql/test/AAA.txt(table Ball ,資料庫是在 test) | + | * 以此範例若沒指定匯出路徑,AAA.txt是匯在/var/lib/mysql/test/AAA.txt(table: Ball ,資料庫DB: test) |
- | </code> | + | </code>用下指令方式<code>mysqldump -uroot -p --tab=/tmp --fields-terminated-by=',' test Ball</code>結果<code>ls /tmp |
+ | Ball.sql --->屬Table 資料結構 | ||
+ | Ball.txt --->屬Table 資料檔 | ||
+ | </code> | ||
+ | |||
+ | ======MySQL資料匯入(Import)====== | ||
+ | 為了試驗匯入,先建立一個Table 名為ballTest<code>mysql> create table ballTest(id int primary key, | ||
+ | -> ClubName varchar(30) DEFAULT NULL, | ||
+ | -> ClubChineseName varchar(20) DEFAULT NULL)engine=myisam default charset=utf8; | ||
+ | </code>開始匯入AAA.txt 資料 to ballTest(資料表)<code>mysql> load data infile 'AAA.txt' | ||
+ | -> replace | ||
+ | -> into table ballTest | ||
+ | -> fields terminated by ','; | ||
+ | </code>另外,也可以用指令方式執行(AAA.txt必須更名為ballTest.txt)<code>mysqlimport -uroot -p -r --fields-terminated-by=',' --lines-terminated-by='\n' test ballTest.txt | ||
+ | |||
+ | Enter password: | ||
+ | test.ballTest: Records: 30 Deleted: 0 Skipped: 0 Warnings: 0 | ||
+ | </code>注意事項<code> | ||
+ | * 匯入的資料 AAA.txt 若是以UTF8編碼,就必須將一個MySQL變數作改變 | ||
+ | mysql> set character_set_database=utf8 | ||
+ | 也可以查詢目前語系 | ||
+ | mysql> show variables like 'char%'; | ||
+ | </code> | ||
+ | =====MySQL 指定欄位資料匯入===== | ||
+ | 若要顯示以下結果<code>+----+--------------------------+-----------------+ | ||
+ | | id | ClubName | ClubChineseName | | ||
+ | +----+--------------------------+-----------------+ | ||
+ | | 1 | 亞歷桑那響尾蛇 | Diamondbacks | | ||
+ | | 2 | 亞特蘭大勇士 | Braves | | ||
+ | | 3 | 巴爾地摩金鶯 | Orioles | | ||
+ | | 4 | 波士頓紅襪 | Red Sox | | ||
+ | | 5 | 芝加哥小熊 | Cubs | | ||
+ | | 6 | 辛辛那堤紅人 | Reds | | ||
+ | | 7 | 克里夫蘭印地安人 | Indians | | ||
+ | | 8 | 科羅拉多落磯山 | Rockies | | ||
+ | | 9 | 芝加哥白襪 | White Sox | | ||
+ | | 10 | 底特律老虎 | Tigers | | ||
+ | ~略~ | ||
+ | </code>指令可以這樣下。這個(ClubChineseName,ClubName)表示從"AAA.txt"資料檔裡,第一個欄位對應ClubChineseName;第二個欄位對應ClubName<code>mysql>load data infile "AAA.txt" | ||
+ | -> replace | ||
+ | -> into table ballTest | ||
+ | -> fields terminated by ',' | ||
+ | -> (ClubChineseName,ClubName); | ||
+ | </code> | ||
+ | ======參考資料====== | ||
+ | * [[http://www.dedecms.com/web-art/shujuku/Mysql/20070118/37610.html|MySQL數據導入導出工具mysqlimport簡介]] | ||
+ | * [[http://dev.mysql.com/doc/refman/5.1/en/mysqldump-delimited-text.html|Mysqldump For Text]] | ||
+ | * [[http://dev.mysql.com/doc/refman/5.1/en/load-data.html|LOAD DATA INFILE Syntax]] |