「ストアドプロシージャ」と「ストアドファンクション」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| 関数 | 処理のまとまり。何かを入れると何かを計算して何かを返してくれるやつ |
| 戻り値 | プログラムや関数から出てくる値 |
| データベース | データのまとまり |
| SQL | データベースと やり取りするときに使う言葉 |
| SQL文 | SQLという言語を使った、データベースさんに対する「おい!これやれよ」な命令文 |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| ストアドプロシージャ | データベースさんに対する「あれやれ、これやれ」な命令を1つにまとめて保存したもので、戻り値のないもの |
| ストアドファンクション | データベースさんに対する「あれやれ、これやれ」な命令を1つにまとめて保存したもので、戻り値のあるもの |
似ているところ
どちらもデータベースの話で出てくる「処理のまとまり」です。
プログラミングの話で出てくる関数みたいなものだと思ってください。
違うところ
一番分かりやすい違いは戻り値の有無です。
ストアドプロシージャは戻り値がありません。
ストアドファンクションは戻り値があります。

あとは、SQL文から呼び出せるかどうかが違います。
ストアドプロシージャはSQL文の中から呼び出せません。
ストアドファンクションはSQL文の中から呼び出せます。
個人的な使い分け
ストアドプロシージャで事足りるときはストアドプロシージャを使います。
ストアドプロシージャだと足りないとき(戻り値が必要とかSQL文の中から呼び出したいとかのとき)にストアドファンクションを使います。






