相關文件 下載本手冊
PDF (美國信紙) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  將資料載入表格

5.3.3 將資料載入表格

建立表格後,您需要填入資料。 LOAD DATAINSERT 陳述式在此很有用。

假設您的寵物記錄可以如下所述。(請注意,MySQL 期望的日期格式為 'YYYY-MM-DD',這可能與您習慣的不同。)

名稱 主人 物種 性別 出生日期 死亡日期
Fluffy Harold f 1993-02-04
Claws Gwen m 1994-03-17
Buffy Harold f 1989-05-13
Fang Benny m 1990-08-27
Bowser Diane m 1979-08-31 1995-07-29
Chirpy Gwen f 1998-09-11
Whistler Gwen 1997-12-09
Slim Benny m 1996-04-29

因為您從空表格開始,所以填入資料的簡單方法是建立一個文字檔,其中包含每隻動物的一列,然後使用單一陳述式將檔案的內容載入表格。

您可以建立一個文字檔 pet.txt,其中每行包含一筆記錄,值以 Tab 分隔,並以 CREATE TABLE 陳述式中列出欄位的順序給定。對於遺失的值(例如未知性別或仍存活動物的死亡日期),您可以使用 NULL 值。若要在您的文字檔中表示這些值,請使用 \N(反斜線,大寫 N)。例如,鳥 Whistler 的記錄如下所示(其中值之間的空白為單個 Tab 字元)

Whistler        Gwen    bird    \N      1997-12-09      \N

若要將文字檔 pet.txt 載入 pet 表格,請使用此陳述式

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

如果您在 Windows 上使用使用 \r\n 作為行終止符的編輯器建立檔案,則應改為使用此陳述式

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
       LINES TERMINATED BY '\r\n';

(在執行 macOS 的 Apple 機器上,您可能會想要使用 LINES TERMINATED BY '\r'。)

如果您願意,可以在 LOAD DATA 陳述式中明確指定欄位值分隔符號和行尾標記,但預設值為 Tab 和換行符。這些足以讓陳述式正確讀取檔案 pet.txt

如果陳述式失敗,很可能是您的 MySQL 安裝預設未啟用本機檔案功能。如需如何變更此設定的資訊,請參閱第 8.1.6 節,「LOAD DATA LOCAL 的安全性考量」

當您想要一次新增一筆新記錄時,INSERT 陳述式很有用。在其最簡單的形式中,您會以 CREATE TABLE 陳述式中列出欄位的順序提供每個欄位的值。假設 Diane 獲得了一隻名為 Puffball 的新倉鼠。您可以使用像這樣的 INSERT 陳述式新增一筆新記錄

mysql> INSERT INTO pet
       VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

字串和日期值在此指定為加上引號的字串。此外,使用 INSERT 時,您可以直接插入 NULL 來表示遺失的值。您不會像使用 LOAD DATA 一樣使用 \N

從此範例中,您應該能夠看出,與使用單一 LOAD DATA 陳述式相比,最初使用多個 INSERT 陳述式載入記錄會涉及更多輸入。