首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MySQL 資料匯入實戰:INSERT、LOAD DATA 與 mysqlimport 全攻略

     編輯:關於SqlServer

建立資料庫與資料表後,下一步就是高效匯入資料。MySQL 提供多種匯入方式,適用不同場景與效能需求。

1. INSERT 語句:最通用的方式

-- 基本語法
INSERT INTO table_name VALUES (val1, val2, ...);
INSERT INTO table_name (col1, col2, ...) VALUES (val1, val2, ...);
INSERT INTO table_name SET col1=val1, col2=val2, ...;
INSERT INTO table_name (col1, col2) SELECT col1, col2 FROM other_table;

批次插入(單一 statement 多筆資料,大幅降低網路往返與解析成本):

INSERT INTO table_name VALUES 
    (val1, val2), (val3, val4), (val5, val6);

2. LOAD DATA INFILE:大量資料高效匯入

直接由伺服器讀取文字檔,速度遠快於 INSERT。需 FILE 權限,檔案須可讀。若指定 LOCAL,則由客戶端讀取並傳送,不需 FILE 權限。

檔案路徑解析規則

條件無 LOCAL有 LOCAL
絕對路徑伺服器根目錄起始客戶端根目錄起始
相對路徑伺服器資料目錄起始客戶端目前工作目錄起始

語法與選項

LOAD DATA [LOCAL] INFILE 'filename'
INTO TABLE table_name
[FIELDS
    [TERMINATED BY 'char']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]
[LINES
    [TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_list)]
  • FIELDS TERMINATED BY:欄位分隔符(預設 Tab)。
  • ENCLOSED BY:欄位包圍字元(常用雙引號)。
  • ESCAPED BY:逸出字元(預設 \)。
  • LINES TERMINATED BY:列結束符(可多字元,預設 \n)。
  • IGNORE n LINES:略過前 n 列(如標題列)。

範例:CSV 匯入

LOAD DATA LOCAL INFILE 'sample.txt'
INTO TABLE sample
FIELDS TERMINATED BY ',' ENCLOSED BY '"';

3. mysqlimport 命令列工具

本質是 LOAD DATA 的命令列介面。語法:

mysqlimport [options] database_name textfile1 [textfile2 ...]
  • 資料表名稱 = 檔案名稱(去除副檔名)。
  • 多檔案匯入同一表:table.txt, table.1.txt, table.2.txt...

範例

mysqlimport -u root --local \
    --fields-terminated-by=',' \
    --fields-enclosed-by='"' \
    samp_db samp_table.txt

選擇建議

  • 少量資料、應用程式內嵌:INSERT(含批次)。
  • 大量文字檔(CSV、TSV、固定寬度):LOAD DATA 或 mysqlimport,效能最佳。
  • 自動化腳本/排程:mysqlimport 適合 Shell 腳本整合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved