MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLテーブルからCSVファイルへデータをエクスポートする際、クエリで設定できるCSVオプションとは?

CSV(Comma-Separated Values)は、表計算ソフトやデータベースのデータを保存するために広く使われているシンプルなファイル形式です。MySQLテーブルのデータをCSVファイルへエクスポートする際には、FIELDS TERMINATED BY オプションを使用することで、各フィールドの値をCSVファイル内の異なるセルに振り分けることができます。

具体例

例として、以下のようなデータを持つ 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 テーブルから選択した値だけが student2.csv というファイルに出力されます。

mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student2.csv' FIELDS TERMINATED BY ',';
Query OK, 6 rows affected (0.07 sec)

このクエリを実行すると、「student2.csv」という名前のファイルが作成され、Student_info テーブルの「id」カラムと「Name」カラムの値が、CSVファイル内のそれぞれ別々のセルに書き込まれます。

ポイント解説

FIELDS TERMINATED BY ',' の部分は、フィールド同士をカンマ(,)で区切ることを指定しています。CSVはカンマ区切りの形式であるため、この設定によりExcelなどの表計算ソフトで開いたときに、各値が正しく個別のセルに配置されるようになります。なお、区切り文字はカンマ以外にもタブやセミコロンなど任意の文字列を指定できるため、用途に応じて柔軟に変更可能です。

  1. 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コマンドを使って、通常の

  2. MySQLのINSERT INTO SELECT文で別のテーブルの値を挿入する方法

    あるテーブルの値を基に別のテーブルへデータを挿入したい場合は、INSERT INTO SELECT文を使用します。この構文では、SELECT文で抽出した結果セットをそのまま対象テーブルへ流し込めるため、テーブル間のデータ移行やコピーにもっとも効率的な方法の一つです。 以下の手順で、実際の動作を順番に確認していきましょう。 手順1:元となるテーブルを作成する まず、データのコピー元となるテーブル「demo82」を作成します。 mysql> create table demo82     -> (