English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQLデータのインポート

本節では、いくつかの簡単な MySQL データインポートコマンドを紹介します。

1mysql コマンドでインポートする

mysql コマンドでデータをインポートするための语法は以下の通りです:

mysql -uユーザー名    -pパスワード    <  インポートするデータベースデータ(w3codebox.sql)

例:

# mysql -uroot -p123456 < w3codebox.sql

以上のコマンドは、バックアップされたデータベース全体をインポートします。3codebox.sql インポート。

2source コマンドでインポートする

source コマンドでデータベースをインポートするには、まずデータベース端末にログインする必要があります:

mysql> create database abc;      # データベースの作成
mysql> use abc;                  # 作成済みのデータベースを使用する 
mysql> set names utf8;           # エンコーディングの設定
mysql> source /home/abc/abc.sql  # データベースのバックアップをインポートする

3LOAD DATA でデータをインポートする

MySQL では、データを挿入するために LOAD DATA INFILE 文語句が提供されています。 以下の例では、現在のディレクトリからファイル dump.txt を読み取り、そのデータを現在のデータベースの mytbl テーブルに挿入します。

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

 LOCAL キーワードが指定された場合、クライアントホスト上のパスからファイルを読み取ることを示します。指定されていない場合、ファイルはサーバー上のパスから読み取られます。

LOAD DATA 文語句で列値の区切り文字と行末マークを明確に指定できますが、デフォルトのマークは位置記号と改行符です。

二つの命令の FIELDS と LINES 子句の文法は同じです。二つともオプションですが、両方が指定された場合、FIELDS 子句は LINES 子句よりも前に指定する必要があります。

ユーザーが FIELDS 子句を指定した場合、その子句(TERMINATED BY、[OPTIONALLY] ENCLOSED BY、ESCAPED BY)もオプションですが、ユーザーは少なくともそのうちの1つを指定する必要があります。

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '\r\n';

LOAD DATA デフォルトでは、データファイルの列の順序に従ってデータを挿入します。データファイルの列とテーブルの列が一致しない場合、列の順序を指定する必要があります。

たとえば、データファイルの列の順序が a,b,c で、テーブルに挿入する列の順序が b,c,a である場合、データインポートの文法は以下の通りです:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE mytbl (b, c, a);

4、mysqlimportを使用してデータをインポート

mysqlimport クライアントは、LOAD DATA INFILE QL ステートメントのコマンドラインインターフェースを提供します。mysqlimportの多くのオプションは、LOAD DATA INFILE サブクエリに直接対応しています。

ファイル dump.txt からデータを mytbl データテーブルにインポートするには、以下のコマンドを使用できます:

$ mysqlimport -u root -p --local mytbl dump.txt
password *****

mysqlimport コマンドは、指定された形式を設定するためにオプションを指定できます。コマンド文の形式は以下の通りです:

$ mysqlimport -u root -p --local --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  mytbl dump.txt
password *****

mysqlimport 文で使用 --columns オプションを使用して列の順序を設定します:

$ mysqlimport -u root -p --local --columns=b,c,a \
    mytbl dump.txt
password *****

mysqlimportの一般的なオプションの紹介

オプション機能
-d or --delete新しいデータをデータテーブルにインポートする前に、データテーブルのすべての情報を削除します。
-f or --forceエラーが発生するかどうかに関わらず、mysqlimportはデータの挿入を強制的に続行します。
-i or --ignoremysqlimportは、同じユニークな...              キーワードの行、インポートされたファイルのデータは無視されます。
-lまたは -lock-tablesデータが挿入される前にテーブルをロックし、これにより                データベースを更新する際に、ユーザーのクエリと更新が影響を受けます。
-rまたは -replaceこのオプションは-iオプションの逆効果です;このオプションは                           テーブルには同じユニークキーのレコードがあります。
--fields-enclosed- by=charテキストファイルのデータのレコードをどのように括るかを指定します。多くの場合                 データはダブルクォートで括られています。デフォルトでは、データは文字で括られていません。
--fields-terminated- by=charデータ間の区切り符を指定します。ピリオドで区切られたファイルでは、                 区切り符はピリオドです。このオプションを使用してデータ間の区切り符を指定できます。                 デフォルトの区切り符はタブです。
--lines-terminated- by=strこのオプションはテキストファイルの行と行の間のデータの区切り文字を指定します                または文字。デフォルトでは、mysqlimportはnewlineを使用して行を区切ります。                一つの文字を代替するために文字列を使用することができます:                 新しい行または改行符。

mysqlimportコマンドが一般的に使用するオプションには -v バージョン(version)を表示する。 -p パスワード(password)などの入力を促す。