【コツ】SQLを使うときは評価順序を意識せよ【初心者向け】

SQL

今回は、データベース初心者の方向けに、SQLを書く際のコツについてお伝えしたいと思います。

最近は、PythonなどSQLが使えなくてもデータを扱うことができるようになりましたが、今は第三次AIブーム、ビックデータの時代ですから、DBに直接SQLを投げる機会もまだまだあると思いますので、ご一読いただければと思います。

今回のターゲットは以下のような方です

  • SELECTとかFROMとかはわかるけど、自分でSQLを書くことができない
  • 作成したSQLがエラーになってしまったが、どう直せばよいかわからない

シンプルなSQLなら作れるけど、複数のテーブルを結合させたり、SUMやCOUNTといった集計関数を使おうとするとエラーになってしまうという経験はないでしょうか。

そういった場合に意識すべきことが1つあります。それは「評価順序」です。今回はこの評価順序についてお伝えします。

評価順序ってなあに

まず、評価順序とはなにかについて話していきます。評価順序を1枚の図にすると以下のようになります。(データベースによってこの評価順序と異なる場合があるので、お使いのデータベースの仕様をご確認ください)

つまり、評価順序とはデータベース(DB)が処理をする順番を表したものです。これをみて疑問に思った方もいるかも知れません。SQLってSELECT句からじゃないのかと。

そうなのです。わたしたちが書くSQLとこの評価順序は順序が違うのです。これが、SQLを書いてもエラーになってしまったり、SQLを修正しようとしても手が止まってしまう原因なのです。

SQLを書くときに扱うデータのことを想像していますか?DBでは実際にそのデータを計算しています。であるならば、SQLを作るわたしたちもそのデータを想像しながら書かなくてはいけないのです。

SELECTするとはデータを選択することです。であるならば、どこからデータを持ってくるのかを最初に決めておかないといけないですよね。

このデータを想像しながらSQLを書くのに使えるのが、この評価順序なのです。SQLを書くのになれていない方は、まず、FROM句から書き始めることをおすすめします。

そんなわたしも・・・

恥ずかしながらわたしも最初はSQLをかけませんでした。新人研修で数時間SQLについて学んだだけの状態で、いきなり現場でSQLを使うことになりました。

教科書どおりのSQLなら書くことができました。Googleで検索すればいくらでもサンプルは出てきますしね。

しかし、一度エラーが出てしまったり、そのプロジェクト特有の結果が必要でサンプルが無いときに困ってしまいました。

そんなときに助けになったのが、評価順序です。先輩からこの評価順序を教えてもらって、データの形を頭の中でイメージしながらSQLを書いていくと自然とSQLがかけるようになったのです。

SQLはそんなに優しくはない

もちろん、この評価順序だけですべてが解決するわけではありません。分析関数など、いろいろな関数を扱えるようになるには、それぞれの使い方を学ばなければいけません。

しかし、どんな難しい関数を使うときも、データベースはこの評価順序通りに処理していきます。評価順序を意識しておくことにこしたことはありません。

評価順序を意識してSQLを使っていこう

以上が、データベース初心者向けのコツ、評価順序のご紹介でした。

SQLを使うことに慣れた後も、何らかの問題が発生した場合は、この評価順序が解決のヒントになることもあると思いますので、その際はこの評価順序に立ち返ってみてください。

タイトルとURLをコピーしました