mysql load data infileインポートデータ

4514 ワード

私たちはよくデータをインポートします.mysqlには効率的なインポート方法があります.それはload data infileです.次に例を見て説明します.
基本構文:
load data  [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name,   )]

load data infile文は、テキストファイルからテーブルに高速で読み込まれます.このコマンドを使用する前に、mysqldプロセス(サービス)がすでに実行されている必要があります.セキュリティ上の理由で、サーバ上のテキストファイルを読み込む場合は、ファイルがデータベースディレクトリにあるか、すべての人に読み込まれる必要があります.また、サーバ上のファイルにload data infileを使用するには、サーバホストにfileの権限が必要です.
 
1キーワードを指定したらlow_priorityでは、MySQLは他の人がこのテーブルを読んでいないまでデータを挿入します.次のコマンドを使用できます.
load data  low_priority infile "/home/mark/data sql" into table Orders;

2 localキーワードを指定すると、クライアントホストからファイルを読み込むことを示します.localが指定されていない場合は、ファイルがサーバ上にある必要があります.
 
3 replaceとignoreキーワードは、既存の一意キーレコードの重複処理を制御する.replaceを指定すると、新しいローが同じ一意のキー値を持つ既存のローに代わります.ignoreを指定すると、キーが1つしかない既存のローの重複ローの入力をスキップします.オプションを指定しない場合は、重複キーが見つかったときにエラーが発生し、テキストファイルの残りの部分が無視されます.例:
load data  low_priority infile "/home/mark/data sql" replace into table Orders;

4区切り文字
(1)fieldsキーワードはファイルセグメントの分割フォーマットを指定し、このキーワードを使用する場合、MySQLプロファイラーは少なくとも次のオプションを表示したいと考えています.
terminated by区切り記号:どの文字を区切り記号とするかを意味します
enclosed byフィールド囲み文字
Escaped byエスケープ文字
terminated by記述フィールドの区切り文字、デフォルトではtab文字(t)
enclosed byは、フィールドの括り文字を記述します.
escaped byで記述されるエスケープ文字.デフォルトはバックスラッシュです(backslash:)
例:
load data infile "/home/mark/Orders txt" replace into table Orders fields terminated by',' enclosed by '"';

(2)linesキーは、各レコードの区切り文字をデフォルトで「改行」に指定します.
両方のフィールドが指定されている場合は、fieldsはlinesの前にする必要があります.fieldsキーワードのデフォルト値を指定しない場合は、fields terminated by't'enclosed by'''escaped by''と同じように書きます.
lines句を指定しない場合は、デフォルト値は、lines terminated byと同じです.
例:
load data infile "/jiaoben/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

 
5 load data infileは、指定した列でファイルをデータベースにインポートできます.データの一部をインポートする場合は、MySQLデータベースにコラム(列/フィールド/field)を追加する必要があります.例えば、アクセスデータベースからMySQLデータベースにアップグレードするとき
次の例では、指定したカラムにデータをインポートする方法を示します.
load data infile "/home/Order txt" into table Orders(Order_Number, Order_Date, Customer_ID);

6サーバホスト上でファイルを検索する場合、サーバは次のルールを使用します.
(1)絶対パス名が与えられた場合、サーバはそのパス名を使用する. 
(2)1つまたは複数のプリアンブルがある相対パス名が与えられた場合、サーバはサーバのデータディレクトリに対してファイルを検索する.  
(3)前置部品のないファイル名が与えられた場合、サーバは現在のデータベースのデータベースディレクトリでファイルを探します. 
たとえば、/myfile txtではサーバのデータディレクトリからファイルが読み込まれ、myfile txtでは現在のデータベースのデータベースディレクトリからファイルが読み込まれます.
 
 
注:フィールド内のNull値用
\N
表示
 
 
転入先http://hunan.iteye.com/blog/752606
転載先:https://www.cnblogs.com/jeesezhang/p/3986244.html