MySQLテーブルの全データをCSVファイルにエクスポートする方法
MySQLでは、SELECT ... INTO OUTFILEステートメントを使用することで、テーブル内のすべてのデータをCSVファイルとして簡単にエクスポートできます。ここでは、具体的な例を挙げながら手順をわかりやすく解説します。
基本構文
SELECT * FROM テーブル名 INTO OUTFILE '出力先パス';
実行例
1. 元となるテーブルの確認
まず、エクスポート対象となる「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)
2. CSVファイルへのエクスポート実行
続いて、以下のクエリを実行すると、「Student_info」テーブルの全データが「student.csv」というファイルに出力されます。
mysql> Select * from student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student.csv'; Query OK, 6 rows affected (0.01 sec)
このクエリを実行すると、指定したパスに「student.csv」ファイルが新しく作成され、テーブル内の6件すべてのレコードが書き込まれます。
カンマ区切り(正式なCSV形式)で出力する場合
INTO OUTFILEのデフォルト出力はタブ区切りです。Excelなどで扱いやすいカンマ区切りのCSVとして出力したい場合は、FIELDS TERMINATED BYやLINES TERMINATED BYオプションを併用します。
mysql> Select * from student_info
-> INTO OUTFILE 'C:/mysql/bin/mysql-files/student.csv'
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\r\n';
Query OK, 6 rows affected (0.01 sec)
利用時の注意点
- 出力先ディレクトリは、システム変数
secure_file_privで許可された場所である必要があります。 - 同名のファイルがすでに存在する場合はエラーになるため、事前に削除するか別のファイル名を指定してください。
INTO OUTFILEの実行にはFILE権限が必要です。
-
【MySQL】テーブルの動的データを活用するストアド関数の作成方法
MySQLストアド関数とテーブル参照の基本ルールMySQLのストアド関数はテーブルを参照することができますが、結果セットを返すステートメントを使用することはできません。つまり、通常のSELECTクエリのように結果一覧を出力する処理は関数内に記述できないという制限があります。この制限を回避するために活用できるのが「SELECT INTO」構文です。SELECT INTOを使えば、テーブルから取得した値を変数へ格納でき、その後関数内で自由に計算や加工を行うことができます。サンプルデータの準備ここでは、学生ごとの各教科の点数を管理する「Student_marks」テーブルを使用します。以下のようなレ
-
PythonでMySQLのテーブルから全データを取得する方法を解説
MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン