Excelの機能を使うことで、簡単な手順で大量のSQLのINSERT文を作成することができます。
臨時の運用対応ではデータが公表されてから30分以内にDBに反映させなければならない等、限られた時間でのデータ補正が必要になるため、プログラムを事前に用意できない場合はExcelでの対応が有効になります。
運用対応だけでなく、開発時のテストデータ作成も効率的に行うことができます。
以下で、例を挙げて説明していきます。
【INSERT対象のテーブル定義】
1 2 3 4 5 |
create table 商品( 商品ID INT PRIMARY KEY, 商品名 CHAR(30), 登録年月日時分秒 CHAR(14) ); |
【INSERT文の作成】
①下記のように入力する。
G2セルについては、下記の式を入力する。
=A$2&”000000″
この式によりA2セルと文字列”000000″を結合する。
参照時には$マークをつけて絶対参照とする。
(後の手順でコピーする時に参照先がずれないようにするため)
②B2~H2セルを3~6行目にコピーする。
③C3セルに2を入力してから、C2~C3セルを選択し、4~6行目までオートフィルする。
④B2~H6セルをコピーし、サクラエディタ等のテキストエディタに張り付ける。
⑤セルを区切るtabを削除する。
サクラエディタの場合は、”\t”を””に置換することで削除できる。
【完成したINSERT文】
1 2 3 4 5 |
INSERT INTO 商品 VALUES(1,'hoge ',20180808000000); INSERT INTO 商品 VALUES(2,'hoge ',20180808000000); INSERT INTO 商品 VALUES(3,'hoge ',20180808000000); INSERT INTO 商品 VALUES(4,'hoge ',20180808000000); INSERT INTO 商品 VALUES(5,'hoge ',20180808000000); |
なお、UPDATE文やDELETE文等も、同じ要領で作成することができます。
また、今回は紹介していませんが、区切り位置、重複の排除、フィルタ等も使用頻度が高い機能であり、これらの機能を使えばフォーマット変換やデータ抽出等も可能になります。
いかがでしたでしょうか。
今回紹介したようなテクニックは技術的には難しいことはしていませんが、実務で良く使う便利なテクニックです。
このようなテクニックはまた紹介していきたいと思います!
コメント