読みやすく、テストしやすいように SQL コードをモジュール化する方法はありますか?
私の SQL コードは、多くの場合、ネストされた結合、内部結合などの長く複雑な一連のものになり、作成もデバッグも困難になります。対照的に、Javascript や Java のような手続き型言語では、名前で呼び出す個別の関数として個別の要素をピンチオフします。
はい、それぞれを完全に個別のクエリとして記述したり、データベースに格納したり、ストアド プロシージャとして記述したりできますが、多くの場合、データベースを変更したり混乱させたりしたくありません。特に DBA が望んでいない場合は、クエリを実行するだけで問題ありません。すべてのユーザーに書き込み権限を付与します。
たとえば、概念的には、複雑なクエリは次のような疑似コードで簡単に記述できます。
(getCustomerProfile)
left join
(getSummarizedCustomerTransactionHistory)
using (customerId)
left join
(getGeographicalSummaries)
using (region, vendor)
...
理論的な観点からこのトピックについて多くのことが書かれていることは承知していますが (以下のリンクをいくつか参照)、コードを正しく書きやすくし、一度書いたら読みやすくする方法を探しているだけです。おそらく、実行からではなくても、視覚から複雑さを抽象化するための構文糖衣にすぎません。これは、私が見ないようにしようとしているリテラル SQL にコンパイルされます。類推して...
- スタイラス: CSS ::
- CoffeeScript : Javascript ::
- SAS マクロ言語: SAS 言語 ::
- ? : SQL
特定の SQL フレーバーが重要な場合、私の作業のほとんどは PostgresQL で行われます。