0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mysqlでストアドプロシージャの書き方のメモ

Posted at

ストアドプロシージャとは

ストアドプロシージャはどうやらSQLで手続き的な関数が定義できるぽいので、これは便利そう!と思いちょっとしらべてみました。

ストアドプロシージャの利点

  1. 再利用性:一度作成すれば、何度でも呼び出して使用できます。
  2. パフォーマンス:クライアントとサーバー間の通信を減らし、サーバー側で処理を行うため、パフォーマンスが向上します。
  3. セキュリティ:データベース操作をカプセル化することで、直接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でプロシージャーを定義する方法もあるみたいです。  時間があればすこし遊んでみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?