首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料導入導出方法與工具介紹(二)

     編輯:MySQL 資料庫相關知識

批次處理模式

批次處理是非互動式運行 mysql 程式的方法,使用與互動模式相同的命令。將包含命令的文字檔重導向至 mysql 程式。例如建立 New_Data.sql:

USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, "Block");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, "Newton");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES (NULL, "Simmons");

注意:語法必須正確,每句以分號結尾。USE 選擇資料庫,INSERT 插入資料。

確認 MySQL 服務運行後,執行:

bin/mysql -p < /home/mark/New_Data.sql

輸入密碼後,無錯誤即導入成功。

命令列使用 LOAD DATA INFILE 導入

LOAD DATA INFILE 可在 MySQL 命令列中使用,也可在所有使用 API 的程式中使用,方便應用程式導入資料。

啟動 MySQL 命令列:

bin/mysql -p

輸入密碼進入後:

USE Meet_A_Geek;
LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;

將 data.sql 內容導入 Orders 表。類似 mysqlimport,有可選參數:

  • 本地檔案導入遠端伺服器:LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders;。LOCAL 表示檔案在本地,MySQL 替你完成上傳,省去 FTP。
  • 低優先級插入:LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders; 等待無其他讀取時才插入。
  • 重複鍵值處理:REPLACE 替代重複鍵,IGNORE 忽略重複鍵。
  • 欄位格式控制:使用 FIELDS 關鍵字指定 TERMINATED BY(分隔符,預設 tab)、ENCLOSED BY(括起字元)、ESCAPED BY(轉義字元,預設反斜線)。範例:
    LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders
    FIELDS TERMINATED BY ',' ENCLOSED BY '"';
  • 指定欄位導入(mysqlimport 不支援):LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders (Order_Number, Order_Date, Customer_ID); 可指定目標欄位,適合來源與目標欄位不匹配時使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved