ほわいとぺーぱー

見習いSEががんばるブログ

【何千件あってもOK!】Excel上の大量データをDB登録するSQLのつくり方

こんにちは、 "ほわいと" です。

見に来ていただきありがとうございます♪

Excelに表データがあって、それをDBに登録しなきゃいけない!ってことありませんか?(わたしはありました…そのときの話はこちら↓)

本記事では、Excel上の大量データをDB登録するためのSQLのつくり方をご紹介します!

なお、実施についてはご自身の責任で行っていただきますようお願いいたします。

前提

Excel上にデータがあること!(そりゃそうか…(^^;;))

WordやPDFなどのデータを登録したい場合は、あらかじめExcelに取り込んでおいてくださいね。

やり方

1. SQLのひな型をつくる

データをDBに登録ということは、SQLとしてはINSERT文をつくる必要がありますよね。

そのひな型をつくっていきましょう!


INSERT文の構文は以下ですので、

INSERT構文

INSERT INTO <テーブル名> (<列名>, <列名>,…) VALUES (<値>, <値>,…);

この<テーブル名>のところをデータを挿入したいテーブル名に、<列名>のところをデータを挿入したいテーブルの列名に直してあげればひな型完成です!

例えば、以下のような "FRUITS" という名前のテーブルがあったとして、

<FRUITSテーブル>※()内は型

NO(NUMBER) NAME(VARCHAR2) PRICE(NUMBER)
     
     

この "NO" 列、 "NAME" 列、 "PRICE" 列にデータを入れたい場合は、こちらがひな型となります(文字列は''で囲む決まりがあります)。

ひな型(例)

INSERT INTO FRUITS (NO, NAME, PRICE) VALUES (<値>, '<値>', <値>);

この<値>の部分をExcel上の表のデータで書き換えていければよいわけですね。

2. ひな型をExcelに書く

では、<値>の部分をExcel上の表のデータで書き換えるにはどうすればよいか。

ひな型をExcelに入力して、書き換えたいデータのセルを直接参照しましょう!

ここではひとまず、ひな型をExcelに入力していきます。

以下のように、ひな型をExcelの表の横に、<値>の部分だけセルを空けておく形で書いてみてください(表はサンプルです)。

セル内の先頭に'を入力したい場合、そのまま入力すると消えてしまいますが、その前にもういっこ'をつければ大丈夫です!

3. ひな型を穴埋めする

<値>部分が空っぽのひな型がExcelの表の横にできましたね。

それでは書き換えたいデータのセルを参照して、空っぽのところを埋めていきましょう!

空っぽのセルに "=<書き換えたいデータのセル番地>" と入力してEnterキーを押すと…

空っぽだったセルに書き換えたいデータが表示されました!

これをほかのデータについてもやっていきます。

ひな型が埋まり、1行分のSQLができあがりましたね!

4. 全行分のSQLをつくる

ほかの行の分もSQLをつくっていきましょう!

…といっても、ここまでの作業を全行分繰り返すのは大変ですね笑

先ほどのSQLをほかの行の横にコピペするだけでできますのでご安心を!

ただ、データが何千件とかってなってくるとコピペも大変ですので、ちょっくら下準備をしましょう。

Excelの表の一番下を選択し、そのままSQLを書いた列まで移動してください。

そして、なんでもよいのでセルを埋めておいてください(最終行なのでわたしは "END" と入れてみました)。

SQLの入っているセル(この例だとE4からK4まで)を全てコピーした状態で、キーボードの "ctrl" 、"shift"、"↓" キーを同時に押しましょう!

以下のように、先ほど埋めたセルを含めた全行選択されましたでしょうか?

一回キーボードから手を離したら、今度は"shift"、"↑" キーを同時に押してみてください。

先ほど埋めたセルのひとつ上までが選択された状態になったかと思います。

この状態でペーストすれば…全行分SQLがつくられました!

<値>の部分に意図したデータが入っているかは見ておいてくださいね。

これをメモ帳にコピペしてタブを除去(※)すれば、SQLスクリプト(一連のSQLが記述されたファイル)の完成です!

※タブを除去する方法はこちら↓

おわりに

以上、Excel上の大量データをDB登録するためのSQLのつくり方のご紹介でした!

SEになって間もないときに先輩がこのやり方をしているのを見て、Excelってそうやって使うんだぁって勉強になった記憶があったので記事にしてみました。

お役に立てればうれしいです!

最後までお読みいただきありがとうございました( ´ ▽ ` )ノ

ではでは、また別のブログで♪