MySQLテーブルの一部のカラムだけをCSVファイルにエクスポートする方法
MySQLテーブルからファイルへデータをエクスポートする際、SELECT ... INTO OUTFILE ステートメントで取得したいカラム名を指定すれば、一部のフィールド(カラム)だけをCSVファイルに出力できます。ここでは、具体的な例を使って手順をわかりやすく解説します。
例:Student_infoテーブルのデータ
まず、次のようなデータを持つ「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)
このテーブルには4つのカラムがありますが、ここでは「id」と「Name」の2つのカラムだけをファイルに書き出したいとします。その場合は、SELECT句に必要なカラム名だけを列挙した次のクエリを実行します。
mysql> Select id, Name from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student1.csv'; Query OK, 6 rows affected (0.07 sec)
このクエリを実行すると、指定したパスに「student1.csv」というファイルが新しく作成され、「Student_info」テーブルの「id」カラムと「Name」カラムの値だけがそのファイルに書き出されます。他のカラム(AddressやSubject)は出力されません。
より正確なCSV形式で出力するには
デフォルトの出力はタブ区切りになるため、厳密なCSV形式にしたい場合は FIELDS TERMINATED BY 句を追加するとよいでしょう。
mysql> Select id, Name from Student_info
-> INTO OUTFILE 'C:/mysql/bin/mysql-files/student1.csv'
-> FIELDS TERMINATED BY ',';
Query OK, 6 rows affected (0.07 sec)注意点
MySQL 5.7以降では、セキュリティ上の理由により、システム変数 secure_file_priv で許可されたディレクトリ以外へはファイルを出力できません。事前に SHOW VARIABLES LIKE 'secure_file_priv'; で許可ディレクトリを確認しておきましょう。また、同名のファイルがすでに存在する場合、上書きされずエラーになるため、出力先のファイル名にも注意が必要です。
-
MySQLテーブルから既存のカラムを削除する方法を解説
MySQLでは、ALTER文とDROP句を組み合わせることで、テーブルから特定の既存カラム(列)を削除できます。この操作はデータベースのスキーマ変更において頻繁に使われる基本構文の一つです。基本構文ALTER TABLE テーブル名 DROP カラム名;各要素の意味は以下の通りです。テーブル名:削除対象のカラムが含まれるテーブルの名前を指定します。カラム名:テーブルから削除したいカラムの名前を指定します。実行例ここでは、テーブル「student_detail」から「address」というカラムを削除する例を見ていきましょう。まず、現在のテーブルの中身を確認します。mysql> selec
-
MySQLでブール型(BOOLEAN)フィールドを追加する方法を徹底解説
MySQLには厳密な意味での「ブール型」は存在せず、BOOLやBOOLEANとして定義した場合でも、内部的にはすべてTINYINT(1)として扱われます。つまり、tinyint(1)、bool、booleanの3つは完全なシノニム(同義語)です。MySQLにおける真偽値の扱いMySQLでは、0が偽(false)、0以外の数値が真(true)として解釈されます。PHPと同様に、0以外の任意の数値もtrueとして扱われる点に注意しましょう。実務上は、可読性を高めるためにtrue/falseリテラルを使うか、規約として0と1のみを使用するのが一般的です。BOOL型カラムを持つテーブルを作成するそれで