MySQL教程-如何匯入格式化資料

本文摘自千鋒教育《MySQL資料庫從入門到精通》,轉載請註明來源,謝謝!

在MySQL中如何匯入格式化資料?

MySQL教程-如何匯入格式化資料

在有些場景下,我們需要把一批特定格式的資料匯入到mysql資料庫中,做法有很多,使用shell指令碼、python都可以,今天來介紹兩個更便捷的命令,mysqlimport 和 load data

mysqlimport

使用方法

MySQL教程-如何匯入格式化資料

注意:campaign。txt檔案必須在/usr/local/mysql/var/a8/目錄下,即資料庫所在目錄

如果不在對應的目錄下,會返回以下錯誤:

MySQL教程-如何匯入格式化資料

常用選項

MySQL教程-如何匯入格式化資料

MySQL教程-如何匯入格式化資料

MySQL教程-如何匯入格式化資料

load data

使用方法

MySQL教程-如何匯入格式化資料

說明:

load data infile語句是將文字資料匯入到資料表中。使用這個命令之前,mysqld程序(服務)必須已經在執行。使用前請確保有檔案的讀取許可權

1、如果你指定關鍵詞low_priority,那麼MySQL將會等到沒有其他人讀這個表的時候,才把插入資料。可以使用如下的命令:

MySQL教程-如何匯入格式化資料

2、如果指定local關鍵詞,則表明從客戶主機讀檔案。如果local沒指定,檔案必須位於伺服器上。

3、replace和ignore關鍵詞控制對現有的唯一鍵記錄的重複的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳過有唯一鍵的現有形的重複行的輸入。如果你不指定任何一個選項,當找到重複鍵時,出現一個錯誤,並且文字檔案的餘下部分被忽略。例如:

MySQL教程-如何匯入格式化資料

4、分隔符

1)fields關鍵字指定了檔案欄位的分割格式,如果用到這個關鍵字,MySQL剖析器希望看到至少有下面的一個選項:

MySQL教程-如何匯入格式化資料

例如:

MySQL教程-如何匯入格式化資料

2)lines 關鍵字指定了每條記錄的分隔符預設為‘n’即為換行符

如果兩個欄位都指定了那fields必須在lines之前。如果不指定fields關鍵字預設值和這樣寫是相同的:fields terminated by‘\t’ enclosed by ’ ‘’ ‘ escaped by‘\\’

如果你不指定一個lines子句,預設值和這樣寫是相同的: lines terminated by‘\n’

例如:

MySQL教程-如何匯入格式化資料

5、load data infile 可以按指定的列把檔案匯入到資料庫中。 當我們要把資料的一部分內容匯入的時候,需要加入一些欄目(列/欄位/field)到MySQL資料庫中,以適應一些額外的需要。比方說,我們要從Access資料庫升級到MySQL資料庫的時候

下面的例子顯示瞭如何向指定的欄目(field)中匯入資料:

MySQL教程-如何匯入格式化資料

6、當在伺服器主機上尋找檔案時,伺服器使用下列規則:

●如果給出一個絕對路徑名,伺服器使用該路徑名。

●如果給出一個有一個或多個前置部件的相對路徑名,伺服器相對伺服器的資料目錄搜尋檔案。

●如果給出一個沒有前置部件的一個檔名,伺服器在當前資料庫的資料庫目錄尋找檔案。

例如: /campaign。txt 是從伺服器的資料目錄讀取,而作為 campaign。txt 是從當前資料庫的資料庫目錄下讀取。