データベースのテーブルに登録されているデータは、列ごとに区切られた単なる値の羅列です。
これらのデータは、テキストファイルとして出力をし、外部のデータベースシステムに提供することができます。
また、テキストファイルとして提供されたデータを読み込んでテーブルを作成することもできます。
ここでは、テキストファイルからのデータの読み書きについて見ていきます。
テキストファイルは、データとデータをカンマやタブ、スペースなどの区切り文字で区切って登録したものです。
単なる文字の羅列なので異なるデータベース間でも読み書きが可能です。
データのテキストファイルへの書き込み(エクスポート)
テーブルに登録されたデータを、CSV(カンマ区切りテキストファイル)などのテキストファイルに書き出すことができます。
これを、エクスポートといいます。
エクスポートしたファイルは、別のデータベースやシステムで利用することができます。
また、データベースが壊れた際のバックアップとしても利用できます。
【書式】テキストファイルにデータを書き出す
SELECT * INTO OUTFILE "ファイル名" オプションの記述 FROM テーブル名;
テキストファイルでデータを読み書きする場合、使用しているPCのOSがWindowsであってもUNIX系であっても「C:/db_primary/hanbailist.csv」のように、ディレクトリ(フォルダ)の区切り文字は「¥」でなく「/」を使用します。
「値と値の区切り文字」(CSVファイルであればカンマが区切り文字)や「改行文字」「何行目から読み込むか」などを、オプションとして指定します。
【書式】LOAD DATA INFILEのオプションの記述
FIELDS TERMINATED BY 区切り文字(デフォルトは"¥t"タブ)
LINES TERMINATED BY 改行文字(デフォルトは"¥n"改行)
IGNORE 最初に読み飛ばす行 LINES(デフォルトは0)
データのテキストファイルからの読み込み(インポート)
テキストファイルとして登録されたファイルからデータを読み込む事を、インポートと言います。
【書式】ファイルからデータを取り込む
LOAD DATA INFILE "ファイル名" INTO TABLE テーブル名 オプション;
ファイルからデータをテーブルに取り込むには、LOAD DATA INFILE文を使います。
CSV形式以外のタブ区切りファイルなどでも読み込むことができます。
「値と値の区切り文字」(CSVファイルであればカンマが区切り文字)や「改行文字」「何行目から読み込むか」などを、オプションとして指定します。
【書式】LOAD DATA INFILEのオプションの記述
FIELDS TERMINATED BY 区切り文字(デフォルトは"¥t"タブ)
LINES TERMINATED BY 改行文字(デフォルトは"¥n"改行)
IGNORE 最初に読み飛ばす行 LINES(デフォルトは0)
SQL文のファイルからの読み込み
テーブルにデータを登録(INSERT)するときなど、SQL文が長いとSQLモニタから実行するのは非効率的です。
SQL文をファイルに保存し、読み込むことができます。
一度ファイルにSQL文を登録しておけば、毎回毎回、SQLモニタからSQLコマンドを打ち込む必要がないので、効率的に作業ができます。
これには、SOURCEコマンドを使います。
SOURCEコマンドは、SQLコマンドではないので最後のセミコロンは必要ありません。
何回も作ることになるテーブルや複雑なSQL文は、テキストファイルとして保存しておき、SOURCEコマンドで実行すると良いでしょう。
参考図書
LINE公式アカウント
仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】