必要な前提知識
当記事はSQLの前提知識が少し必要です。
知識がなくても分かりやすいよう、ものすごく簡単に嚙み砕いてはいますが、そもそもやりたいことを理解できないと難しいと思います。
そのような前提条件を踏まえた上でご覧いただければと思います。
ちなみにですが、Excelの文字列結合については以前まとめていますので、そちらをご覧ください。
ゴール
さて今回は、Excelの文字列結合を使ってSQL文を作成するまでの手順についてまとめたいと思います。
必要なINSERT文の型を作成し、型と項目を文字列結合で繋ぎ合わせていくようなイメージです。
以下画像のようなINSERT文が速攻で作れるようになることがゴールです。
一緒にExcelを触りながら試してみましょう!
手順
INSERT文に必要な項目確認
まずはINSERT文の項目を理解しておきましょう。以下の通りです。
INSERT INTO テーブル名 (テーブル項目1, テーブル項目2, ・・・) VALUES (データ1, データ2, ・・・)
これらを区切って考えましょう。
①「 INSERT INTO テーブル名 」
テーブル名は任意のテーブル名です。ご自身がINSERTしたいテーブルの名前を指定しましょう。
今回は例として、「test_table_name」としています。
②「 (テーブル項目1, テーブル項目2, ・・・) 」
テーブルの項目です。見出しにあたる部分ですね。
今回は例として、5つの項目がありますので、それぞれ指定してあげます。
③「 VALUES (データ1, データ2, ・・・) 」
「VALUES」の後にINSERTしたい「(データ1, データ2, ・・・)」を指定しましょう。
INSERT文を作成する
項目が分かったら、さっそく作成してみましょう。
まずは以下のようなものを作成しました。
=CONCAT("INSERT INTO ", $B$3, " (", TEXTJOIN(", ", FALSE, INSERTデータ!$B$2:$G$2), ") VALUES ('", TEXTJOIN("', '", FALSE, INSERTデータ!B3:G3), "');")
Point1:基本的には「CONCAT関数」で結合
基本的には「CONCAT関数」を使って結合しています。
「INSERT INTO」や「VALUES」、「( )」←括弧や「;」←セミコロンは「” “」ダブルクォーテーションで囲って指定しています。
Point2:テーブル名やテーブル項目は必要な物を指定して固定
テーブル名やテーブル項目はINSERTするデータによって変わるものではありません。不変なものですのでしっかりと固定してあげます。
「$$」で囲うことで、コピペしてINSERT文を増やす際にExcelが自動で別の値を入力することなく、固定されます。
Point3:テーブル項目やデータは「TEXTJOIN関数」で結合
テーブル項目やデータは、「TEXTJOIN関数」で結合しています。
理由は、テーブル項目やデータは「, 」カンマで区切ったり、「’ ‘」シングルクォーテーションで囲ったりする必要があるためです。
区切りをつけるのであれば、「TEXTJOIN関数」が優れています。
INSERT文の型ができたらコピペ
INSERT文の型ができたらコピペするだけです。
1つ目をコピーして、必要な分だけペーストしてあげましょう。
Excel君が自動で必要な項目を補完して作成してくれます。このときに「$$」で囲ってテーブル名やテーブル項目を固定してあげるのが必要なわけです。
まとめ
さて今回は、Excelの文字列結合を使ってSQL文を作成するまでの手順についてまとめました。
冒頭にもお伝えしましたが、もっといいやり方も必ずあるはずです。とゆうか、ツールによってはCSVファイルをアップロードするだけでINSERTしてくれそうですし・・・。
まぁあくまでも1例として、参考程度にしていただければと思います。
以上!
前回まとめた記事も読んでもらえると嬉しいです!
Excel以外の勉強記事も是非!
オススメUdemy講座
オススメのUdemy講座も載せておきます。自学習にご活用ください!
コメント