ストアドプロシージャとは
ストアドプロシージャはどうやらSQLで手続き的な関数が定義できるぽいので、これは便利そう!と思いちょっとしらべてみました。
ストアドプロシージャの利点
- 再利用性:一度作成すれば、何度でも呼び出して使用できます。
- パフォーマンス:クライアントとサーバー間の通信を減らし、サーバー側で処理を行うため、パフォーマンスが向上します。
- セキュリティ:データベース操作をカプセル化することで、直接SQL文を実行するよりも安全です。
サンプル
DELIMITER //
CREATE PROCEDURE GetUserByEmail(IN userEmail VARCHAR(255))
BEGIN
SELECT * FROM users WHERE email = userEmail;
END //
DELIMITER ;
以下各行の解説
・DELIMITER//とは
デリミタ(sqlの終端を表す文字)を”;” から”//”変更して、プロシージャ内のsqlで記載した";"をプロシージャの最終文字と被らないようにする為の一行。
・CREATE PROCEDURE
GetUserByEmail(IN userEmail VARCHAR(255)):GetUserByEmailという名前のストアドプロシージャを作成します。INパラメータuserEmailを受け取ります
・BEGIN ~ END
プロシージャの本体を定義します。
・ SELECT * FROM users WHERE email = userEmail;
users
テーブルから指定されたメールアドレスのユーザーを選択します。
・DELIMITER ;
デリミタを元に戻します。
ストアドプロシージャの実行
CALL ストアドプロシージャ名()で実行できます。
javascriptでプロシージャーを定義する方法もあるみたいです。 時間があればすこし遊んでみます。