これをマスター
マスター ストアードプロシージャですっきり化テーマ
テーブル: sales | ||||||
取引ID | 取引日 | 店舗ID | 商品ID | 個数 | 合計金額 | |
1 | 7 | 4/1/20 | 3 | 52 | 1 | 250 |
2 | 11 | 4/1/20 | 3 | 27 | 2 | 700 |
3 | 19 | 4/5/20 | 3 | 46 | 2 | 400 |
4 | 32 | 4/11/20 | 4 | 23 | 2 | 360 |
5 | 33 | 4/16/20 | 4 | 34 | 1 | 245 |
6 | 39 | 4/21/20 | 4 | 32 | 1 | 300 |
7 | 50 | 5/1/20 | 5 | 49 | 2 | 600 |
8 | 53 | 5/1/20 | 5 | 60 | 1 | 375 |
9 | 59 | 5/11/20 | 5 | 51 | 2 | 600 |
10 | 62 | 5/21/20 | 5 | 49 | 2 | 600 |
はじめに
(ストアード)プロシージャは
複数のクエリーをまとめて一つの関数にまとめる機能です
複数のクエリを何回も実行すればよいのではと思われるかもなので
なぜ便利かを少しお話します
初期のアナライシスでは
単発のクエリを実行して
結果はExcelにコピーして、のような調査を行わう事が多いと思います
次第にデータベースのしくみが出来上がっていって
探したいデータの種類やレポートが細かくなっていき
レポートの頻度も増えてくると
Excelにコピーして作業する手間と時間がムダになってきます
そういった場合
ストアドプロシージャで複数クエリをまとめる事で
最初のクエリで得た結果を次のクエリに渡して
それをさらに集計して
のような一連の作業をひとまとめにすることが出来ます
数十、数百行あるクエリを何度も繰り返し行うケースも出てくるかもなので
クエリのコードをすっきりまとめられるメリットもあります
で実行できます
詳しく
ストアドプロシージャの作成
BEGIN
一連のクエリ
END
CREATE PROCEDURE プロシージャ名 (パラメター パラメタータイプ, パラメター パラメタータイプ …)
プロシージャ名(スペースは入れず1語で)はお好きな名前をつけられます
パラメターは任意で必要ならば指定できます
CREATE PROCEDURE daily( startDate AS date, endDate AS date)
のような感じにパラメターのデータタイプをつけて指定します
ストアドプロシージャの実行
EXEC ストアドプロシージャ名実行はいたってシンプルで
EXEC のあとにプロシージャ名を指定するだけです
実践
通常ストアドプロシージャは
ジョブと呼ばれる決まった時間に定期的に実行する
データベースの機能で実行する事で
たとえば
深夜0時にデータの取得をして
深夜1時にレポートを作成して
終日の午後11時にデータをクリアにする
のような使われ方もします