MySQL::MySQL5.7リファレンスマニュアル::3.3.3テーブルへのデータのロード

3.3.3テーブルへのデータのロード

テーブルを作成した後、それを移入する必要があります。 このためには、LOAD DATAINSERTステートメントが便利です。

あなたのペットの記録がここに示すように記述できるとします。 (MySQLは'YYYY-MM-DD'形式の日付を期待していることに注意してください。)

1996-04-29

name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
クッパ ダイアン m 1979-08-31 1995-07-29
チャーピー グウェン f

空のテーブルで始まっているので、それを移入する簡単な方法は、あなたのそれぞれの行を含むテキ 動物は、その後、単一の文でテーブルにファイルの内容をロードします。

テキストファイルを作成することができますpet.txtCREATE TABLENULL\N(バックスラッシュ、大文字-N)を使用します。 たとえば、Whistler the birdのレコードは次のようになります(値の間の空白は単一のタブ文字です)。

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

テキストファイルpet.txtpetテーブルにロードするには、次のステートメントを使用します。

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

行末記号として\r\nを使用するエディタを使用してwindows上でファイルを作成した場合は、代わりに次の文を使用する必要があります。

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

(macosを実行しているappleマシンでは、LINES TERMINATED BY '\r'LINES TERMINATED BY '\r'LINES TERMINATED BY '\r'

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とlinefeedです。 これらは、文がファイルpet.txtを正しく読み取るのに十分です。

ステートメントが失敗した場合、MySQLインストールではデフォルトでローカルファイル機能が有効になっていない可能性があります。 これを変更する方法については、セクション6.1.6″LOAD DATA LOCALのセキュリティ上の考慮事項”を参照してください。 新しいレコードを1つずつ追加する場合は、INSERTCREATE TABLEステートメントに列がリストされた順序で指定します。 ダイアンが”Puffball”という名前の新しいハムスターを手に入れたとします。”次のようなINSERTステートメントを使用して新しいレコードを追加できます。

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

文字列と日付値は、ここで引用符で囲まれた文字列とし また、INSERTNULL\NLOAD DATA

この例から、単一のLOAD DATAINSERTステートメントを使用して、最初にレコードをロードするには、より多くのタイピングが必要であることがわかるはずです。