MySQLテーブルからテキストファイルへのエクスポート時に、クエリでテキストファイルの書式設定を行う方法
MySQLテーブルからテキストファイルへデータをエクスポートする際には、「FIELDS TERMINATED BY」、「ENCLOSED BY」、「LINES TERMINATED BY」などのオプションを使用することで、フィールドの値をさまざまな形式でテキストファイルに出力できます。以下の例を使って具体的に見ていきましょう。
例
次のような「Student_info」テーブルのデータがあるとします。
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 6 rows in set (0.07 sec)
このテーブルの中から「id」と「Name」の2列だけをファイルにエクスポートしたい場合、次のクエリを実行することで、「Student_info」テーブルから「id」と「name」列の値のみを「student3.txt」という名前のファイルに出力できます。
mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student3.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; Query OK, 6 rows affected (0.07 sec)
上記のクエリを実行すると、「Student3.txt」という名前のファイルが作成され、「Student_info」テーブルの「id」列と「name」列の値が指定した書式でそのファイルにエクスポートされます。
各オプションの意味
- FIELDS TERMINATED BY ',':各フィールド(列)の値をカンマで区切ります。
- ENCLOSED BY '"':各フィールドの値をダブルクォート(")で囲みます。
- LINES TERMINATED BY '\r\n':各行を改行コード( )で区切ります。Windows環境の標準的な改行形式です。
これらのオプションにより、「Student3.txt」内のデータは次のように整形されます。
"101","YashPal" "105","Gaurav" "125","Raman" "130","Ram" "132","Shyam" "133","Mohan"
このように、INTO OUTFILE構文と組み合わせてこれらのオプションを使い分けることで、CSV形式など用途に応じたテキストファイルの書式を柔軟に制御することが可能です。例えばExcelなどで開くことを想定したCSVファイルを作成する場合にも、この方法は非常に便利です。
-
MySQLでテーブルのNULL値のみを置き換えるクエリの書き方
MySQLでテーブル内のNULL値だけを別の値に置き換えたい場合、IS NULL プロパティを活用します。UPDATE文とIF関数を組み合わせることで、NULLが含まれる行だけを効率的に更新できます。ここでは、実際の手順をサンプル付きで解説します。 1. サンプルテーブルを作成する まず、動作確認用のシンプルなテーブルを作成しましょう。 mysql> create table DemoTable ( Name varchar(100) ); Query OK, 0 rows affected (0.53 sec) 2. テストデータを挿入する INSERTコマンドを使って、通常の
-
MySQLのINSERT INTO SELECT文で別のテーブルの値を挿入する方法
あるテーブルの値を基に別のテーブルへデータを挿入したい場合は、INSERT INTO SELECT文を使用します。この構文では、SELECT文で抽出した結果セットをそのまま対象テーブルへ流し込めるため、テーブル間のデータ移行やコピーにもっとも効率的な方法の一つです。 以下の手順で、実際の動作を順番に確認していきましょう。 手順1:元となるテーブルを作成する まず、データのコピー元となるテーブル「demo82」を作成します。 mysql> create table demo82 -> (