以前勤めていた会社にて、SQLが分からないという後輩に対し、SQLをどうしたらわかるか考え、整理した内容についてまとめます。
SQLがとっつきにくいと感じる方や、SQLが分かりにくい。どこから手を付けたら良いかわからないという方の参考となりますと幸いです。
私自身も過去にSQLがよくわからない事があり、一度処理内容を整理したことで、SQLのイメージをつかむことができ、業務で使えるまでになった経験があります。
この時の経験について、記事をまとめています。ご興味のある方はご一読ください。
参考:「「SQLが理解できない、分からない」を絵を描いて解決した」
なぜSQLが分かりにくいのか
私もSQLを学び始めた際に何をしているかわからないという経験がありました。この時の経験を再度整理する事と、後輩がどういったところで躓くのかを処理の順を追って、確認しました。
「確認結果」
- プログラミング(C言語やJava等)は上から下に処理が流れているため、SQLも上から下に順番に記述しようとしている
- 通常処理をSQLで書く時、今書いている部分が全体のどこに位置する処理かわからない。
- 処理を記述したが、結果が違い、何に間違えたかわからない。
- 処理を書いている時、どんな処理をしているか、イメージできず、何を書いたら良いかわからない。
どの問題も、処理イメージや処理手順のイメージが持てず発生しています。
「処理の順番が分からず、最適な処理を記述できていないため、記載した内容と期待した結果にずれが生じる」、「何をしているか処理の全体像がつかめないため、現在書いているSQLが全体のどこの処理かわからない」といった事です。
こうしたことから、SQLの処理の順番を知ることで、イメージが持ちやすいのではないかと考え、調べました。
SQLの処理順番
過去に確認したSQLの処理順番を記載します。記載している順番に処理が流れています。比較的利用率の高そうなものを記述しています。ご参考となりますと幸いです。
(※処理内容で知らないものがあったとしても、一旦知っている処理の順番を確認していただければ、問題ありません。)
- from
- where
- group by
- having
- select
- union
- order by
- distinct
イメージは、取得したいデータの範囲(対象テーブル)をfrom句で指定します。その後、where句やgroup by、havingといった絞り込みや集約を行います。
最後にselect句で見せたいデータを表示します。表示について、見やすい様にデータを並び替えたり、合わせたり、重複をはじいたりします。
ざっくりと、対象のデータ一覧から、対象のデータを抽出し、必要都度データを加工するという流れです。
SQLをわかりやすくするために処理順番を知るとどうなるか
SQLの処理の順番を知る事で、SQLの理解にどう役立ったかというと、以下の様なことがあげられました。
- 自分が処理全体のどの部分を記述しているか意識することができた。「FROM句であれば、データの取得テーブルを指定している。」というように、記述内容の立ち位置が分かりながら、SQLが記述できる。
- 結果が違う時に、処理内容を整理することができ、どこで間違えたか、予想ができる様になった。
- データを取得する範囲を広げたいから、FROM句でINNER JOINをしているイメージがつかめた。
上記の様に各記述の目的を整理しながら、動きを想像し、処理を記述できる様になりました。
ようやく、SQLの処理が何をやっているか分かる形となりました。処理の記述で困った時、自分で処理内容を確認できる様になり、SQLを勉強する際の入口にたどり着いたという感じでした。
まとめ
SQLについて、他のプログラムと同様の動きをするという先入観や、処理の流れが分からない事により、理解できない点等が発生します。また、処理順番が分からない事から、自分が今何をしているか、わからなくなる事態が発生します。
こうした問題に対し、SQLの処理の流れを知ることで、処理内容のイメージをつかみ、SQLの理解が進むと思います。
本記事が、SQLがよくわからないという方の参考となりますと幸いです。
以上です。