技術とか戦略とか

証券レガシーシステムを8年間いじった普通のSEによるブログ。技術のみではなく趣味の戦略考察についても。PCから見た方が色々見やすいと思います。

ExcelでINSERT文を作成

Excelを使ってSQLのINSERT文を作成してみる記事です。

Excelの機能を使うことで、効率良く大量のINSERT文やUPDATE文等を作成できます。

臨時の運用対応ではデータが公表されてから30分以内にDBに反映させなければならない等、限られた時間でのデータ補正が必要になるため、プログラムを事前に用意できない場合はExcelでの対応が有効になります。

運用対応だけでなく、開発時のテストデータ作成も効率的に行うことができます。

 

以下は例となります。

 

【INSERT対象のテーブル定義】

create table 商品(

商品ID INT PRIMARY KEY,

商品名 CHAR(30),

登録年月日時分秒 CHAR(14)

);

 

【INSERT文の作成】

①下記のように入力する。

f:id:akira2kun:20180808224159j:plain

G2セルについては、下記の式を入力する。

=A$2&"000000"

この式によりA2セルと文字列"000000"を結合する。

参照時には$マークをつけて絶対参照とする。

(後の手順でコピーする時に参照先がずれないようにするため)

 

②B2~H2セルを3~6行目にコピーする。

f:id:akira2kun:20180808224225j:plain

 

③C3セルに2を入力してから、C2~C3セルを選択し、4~6行目までオートフィルする。

f:id:akira2kun:20180808224236j:plain

 

④B2~H6セルをコピーし、Sakuraエディタ等のテキストエディタに張り付ける。

 

⑤セルを区切るtabを削除する。

 

【完成したINSERT文】

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);

--------------------

なお、今回紹介していない機能としては、区切り位置、重複の排除、並び替えとフィルタ等を良く使います。

これらの機能を使えばフォーマット変換やデータ抽出等も可能になります。