NULL値を含むテーブルからCSVファイルへデータをエクスポートする場合、MySQLはどのように処理するのか
NULL値を含むテーブルからデータをCSVファイルへエクスポートすると、MySQLはNULL値が存在するレコードの箇所に「\N」を書き込みます。この動作は、以下の例で確認できます。
例:NULL値を含むテーブルのエクスポート
次のようなデータを持つテーブル「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 | | 150 | Saurabh | NULL | Literature | +------+---------+------------+------------+ 7 rows in set (0.00 sec)
この結果を見ると、idが150のレコードのAddressフィールドだけがNULLになっていることがわかります。次のクエリを実行すると、このテーブルのデータが「Student_27.csv」へエクスポートされます。
mysql> Select * from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student_27.csv' FIELDS TERMINATED BY ','; Query OK, 7 rows affected (0.02 sec)
上記のクエリを実行すると、「Student_27.csv」には以下の値が保存されます。
101 YashPal Amritsar History 105 Gaurav Chandigarh Literature 125 Raman Shimla Computers 130 Ram Jhansi Computers 132 Shyam Chandigarh Economics 133 Mohan Delhi Computers 150 Saurabh \N Literature
このように、テーブル内にNULL値が存在する場合、MySQLはその箇所に自動的に「\N」を出力することが確認できます。
補足:「\N」の扱いに関する注意点
「\N」はMySQL特有のNULL値を表す表記です。エクスポートしたCSVファイルをLOAD DATA INFILE文などで再び読み込む際にも、「\N」はNULL値として正しく認識されるため、元のデータを忠実に復元できます。
なお、空文字列('')とNULLは別の概念である点に注意してください。空文字列は「値として空の文字列が入っている」状態ですが、NULLは「値がそもそも存在しない」ことを意味します。CSVファイル上ではそれぞれ異なる形で出力されるため、データの受け渡しを行う際はこの違いを意識しておくとよいでしょう。
-
MySQLでStudentScoreテーブルから2番目に高い値を取得する方法
MySQLでテーブルから2番目に高い値を取得したい場合、ORDER BY DESCとLIMIT 1,1を組み合わせるのが最もシンプルな方法です。この記事では、実際にサンプルテーブルを作成しながら、具体的な手順をわかりやすく解説します。 サンプルテーブルを作成する まず、学生のスコアを格納するためのテーブル「DemoTable」を作成します。 mysql> create table DemoTable ( StudentScore int ); Query OK, 0 rows affected (0.56 sec) テストデータの挿入 INSERTコマンドを使って、テーブルにいく
-
JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順
CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各