※この記事は、初心者プログラマの私が、業務で扱った内容に関連した箇所を
自身の学習用にまとめたものです。
##ストアドプロシージャ、ストアドファンクションとは?
ストアドプロシージャ、ストアドファンクションは、ともにデータベースに対しての複数の命令をまとめた関数のこと。
例えば、SELECT文やUPDATE文など、複数の命令文を実行するのに
ストアドプロシージャ、ストアドファンクションを用いなかった場合、
**命令1.**SELECT文実行
**命令2.**UPDATE文実行
**命令3.**〇〇実行
命令4.…
命令5.…
のように、命令される回数だけ
・クライアント(データベースを利用するプログラム)
・サーバー(データベースを読み書きするプログラム)
・データベース(データを保存してるところ)
を行き来しなければならず、通信量が多くなってしまうが、
ストアドプロシージャ、ストアドファンクションを使用すれば、行いたい処理を1度の通信で行うことができる。
##ストアドプロシージャ、ストアドファンクションの違いは?
2つの大きな違いは、
・ストアドプロシージャ…戻り値がない
・ストアドファンクション…戻り値がある
つまり、ストアドプロシージャは、データベースに対して一連の処理を行ってそれで終了だが、
ストアドファンクションは、データベースに対して一連の処理を行って、その結果得られた値を戻り値として返す。(戻り値として返すということは、あらかじめ変数を用意しておいて、そこに戻り値を代入するといったように、何らかの準備が必要)
今のところはこのような認識。
今後理解がもっと深まったら、都度更新しようと思います。