INTO OUTFILEオプション付きSELECT文
SELECT文にINTO OUTFILEオプションを追加すると、画面上にSELECT文の結果を表示する代わりに指定したファイルに出力結果を格納します。WHEREやORDER BYなど各種の句が通常のSELECT文と同じく利用できます。以下の点に注意が必要です。
- サーバー側のファイルに出力される。クライアント側ではない
- データは新しいファイルにのみ出力される。既存のファイルは使用できない。
- 1行のデータごとに改行されて出力される
構文は以下のいずれも利用可能です。
SELECT INTO OUTFILR 'ファイル名' [文字コード] [エクスポートオプション] 「SELECT文の本体」; SELECT 「SELECT文の本体」 INTO OUTFILR 'ファイル名' [文字コード] [エクスポートオプション];
インポートとエクスポートのフォーマット
いずれのエクスポートの方法でも、列がタブで区切られ、行が改行で区切られたフォーマットとなっています。またインポート時も明示的に指定しない限りこの形式をデフォルトとしています。
SQLコマンドでのオプション | コマンドラインでのオプション | 意味 |
FIELDS TERMINATED BY | --fields-terminated-by | 列の区切り文字 |
FIELDS ENCLOSED BY | --fields-enclosed-by | 列の囲み文字 |
LINES TERMINATED BY | --lines-terminated-by | 行の区切り文字 |
mysqldumpコマンド
コマンドラインからデータのエクスポートをするのがmysqldumpコマンドです。mysqldumpもフォーマットを制御するオプションが使えます。mysqldumpコマンドはクライアントプログラムなので、接続先のサーバの情報をオプションで明示的に指定する必要があります。構文は以下の通りです。
特定のデータベースをエクスポートする場合
mysqldump [オプション] データベース名 mysqldump [オプション] --databases データベース名
特定のテーブルをエクスポートする場合
mysqldump [オプション] データベース名 テーブル名
複数のデータベースをエクスポートする場合
mysqldump [オプション] --databases DB1 [DB2 DB3...] ※データベース名をスペースで区切る mysqldump [オプション] --all-databases