ホームページ >データベース >mysql チュートリアル >mysqlでテーブルをエクスポートするにはどうすればよいですか?
エクスポート方法: 「SELECTI...INTO OUTFILE」ステートメントを通じて、「SELECT 列名 FROM テーブル [WHERE ステートメント] INTO OUTFILE '対象ファイル' [OPTIONS]」形式ステートメントを使用して、次の内容をエクスポートします。テーブルをテキスト ファイルに変換します。
#データ テーブルをインポートおよびエクスポートすることにより、MySQL データベース サーバーと他のデータベース サーバーの間でデータを移動できます。エクスポートとは、MySQL データ テーブルのデータをテキスト ファイルにコピーすることを指します。データをエクスポートするにはさまざまな方法がありますが、このセクションでは主に SELECTI...INTO OUTFILE ステートメントを使用してデータをエクスポートする方法を紹介します。
MySQL では、SELECTI...INTO OUTFILE ステートメントを使用してテーブルの内容をテキスト ファイルにエクスポートできます。 SELECT...INTO OUTFILE ステートメントの基本形式は次のとおりです。
SELECT 列名 FROM table [WHERE 语句] INTO OUTFILE '目标文件'[OPTIONS]
このステートメントは、SELECT を使用して必要なデータをクエリし、INTO OUTFILE を使用してデータをエクスポートします。このうち、ターゲット ファイルは、クエリされたレコードのエクスポート先のファイルを指定するために使用されます。ここで注意が必要なのは、対象ファイルを既存のファイルにすることはできないということです。
[OPTIONS] は、オプションのパラメータ オプションです。OPTIONS 部分の構文には、FIELDS 句と LINES 句が含まれます。一般的に使用される値は次のとおりです:
FIELDS TERMINATED BY 'String': フィールド間の区切り文字として文字列を設定します。文字列には 1 文字または複数の文字を使用できます。デフォルトでは、タブ文字 '\t' です。
FIELDS [オプション] ENCLOSED BY 'Character': CHAR、VARCHAR、TEXT などの文字フィールドを囲む文字を設定します。 OPTIONALLY を使用する場合、CHAR や VARCHAR などの文字フィールドを囲むためにのみ使用できます。
FIELDS ESCAPED BY 'Character': 特殊文字の書き込みまたは読み取り方法を設定します。単一文字のみを使用できます。つまり、エスケープ文字を設定します。デフォルト値は '\ '。
LINES STARTING BY 'String': 各行の先頭に文字を設定します。単一または複数の文字を指定できます。デフォルトでは、文字は使用されません。
LINES TERMINATED BY 'String': 各行の末尾の文字を設定します。単一または複数の文字を使用できます。デフォルト値は '\n' です。
注: FIELDS 句と LINES 句は両方ともオプションですが、両方を指定する場合は、FIELDS を LINES の前に配置する必要があります。
例 1
次の例では、SELECT...INTO OUTFILE ステートメントを使用して、テスト データベースの person テーブルのレコードをエクスポートします。 SQL ステートメントと実行結果は次のとおりです:
mysql> SELECT * FROM test.person INTO OUTFILE 'C://ProgramData/MySQL/MySQL Server 5.7/Uploads/person.txt'; Query OK, 5 rows affected (0.05 sec)
次に、エクスポートされたパスに従って person.txt ファイルを見つけます。ファイルの内容は次のとおりです:
1 Java 12 2 MySQL 13 3 C 15 4 C++ 22 5 Python 18
person テーブル データがエクスポートされます成功しました。
注: エクスポート中に次のエラーが発生する場合があります:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
これは、MySQL がデータのエクスポート パスを制限しているためです。 MySQL インポートおよびエクスポート ファイルは、secure-file-priv 変数で指定されたパス内のファイルにのみインポートおよびエクスポートできます。
次の 2 つの解決策があります:
1) まず、'%secure%'; ステートメントのような show variables を使用して、secure-file-priv 変数構成を表示します。 。
mysql> show variables like '%secure%' \G *************************** 1. row *************************** Variable_name: require_secure_transport Value: OFF *************************** 2. row *************************** Variable_name: secure_auth Value: ON *************************** 3. row *************************** Variable_name: secure_file_priv Value: C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ 3 rows in set, 1 warning (0.04 sec)
secure_file_priv の値は、MySQL インポートおよびエクスポート ファイルへのパスを指定します。 SQL ステートメント内のエクスポート ファイルのパスを変数の指定されたパスに変更し、インポートおよびエクスポート操作を実行します。 my.ini 構成ファイル内の secure-file-priv の値を変更して、サービスを再起動することもできます。
2) secure_file_priv 値が NULL の場合、エクスポートは禁止されているため、MySQL インストール パスの下の my.ini ファイルに secure_file_priv= 設定パス ステートメントを追加して、サービスを再起動できます。
例 2
SELECT...INTO OUTFILE ステートメントを使用して、FIELDS オプションを使用して、テスト データベースの person テーブルのレコードをテキスト ファイルにエクスポートします。および LINES オプションでは、フィールドは で区切る必要があり、文字データは二重引用符で囲む必要があります。各レコードは - で始まります。 SQL ステートメントは次のとおりです:
SELECT * FROM test.person INTO OUTFILE 'C:/person.txt' FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\-' TERMINATED BY '\r\n';
その中に:
FIELDS TERMINATED BY ', ': フィールドが , で区切られていることを示します;
ENCLOSED BY '\"': 各フィールドが二重引用符で囲まれていることを示します;
LINES STARTING BY '\-': 各行が次で始まることを示します-;
TERMINATED BY '\r\n' は、各行が復帰と改行で終わり、各レコードが必ず 1 行を占めることを意味します。
##person.txt ファイルの内容は次のとおりです。-1、"Java"、12 -2、"MySQL"、13 -3、"C"、15 -4、"C++"、22 -5、"Python"、18各レコードが - で始まり、各データが, で区切られ、すべてのフィールド値が含まれていることがわかります。 推奨チュートリアル:
mysql ビデオ チュートリアル
以上がmysqlでテーブルをエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。