MySQL ストアド プロシージャと関数は、MySQL データベースにおける 2 つの重要な概念であり、データベースの管理とメンテナンスを効果的に簡素化できます。この記事では、MySQLのストアドプロシージャや関数の基礎知識や使い方、使用上の注意点を詳しく紹介します。
1. MySQL ストアド プロシージャ
MySQL ストアド プロシージャは、特定のタスクを完了するための SQL ステートメントのセットであり、MySQL サーバー上に記述された SQL コードであり、バッチ スクリプトとみなすことができます。入力パラメータを受け入れ、実行中に一時テーブルなどの複雑な操作を作成し、出力パラメータを通じて呼び出し側プログラムに結果を返すことができます。
- コードの再利用性の向上: ストアド プロシージャを複数のアプリケーションで共有して呼び出すことができるため、異なるアプリケーション間でのコードの再利用性が大幅に向上します。
- パフォーマンスの向上: ストアド プロシージャは事前にコンパイルされているため、同じ操作を複数回実行する場合のコンパイルの繰り返しを回避し、実行効率を向上させることができます。
- データベース接続管理の負担を軽減: ストアド プロシージャの実行後、接続が解放されるまでセッション コンテキストが残されるため、ストアド プロシージャの繰り返し実行の時間が短縮され、確立が短縮されます。接続の終了とデータベースコストの削減 接続管理の負担。
MySQL ストアド プロシージャを実装する具体的な方法は次のとおりです:
- DELIMITER を使用して区切り文字を設定します: MySQL の区切り文字はデフォルトで「;」であるため、ストアド プロシージャでも「;」が使用されるため、DELIMITER を使用して一意の区切り文字を設定する必要があります。
- ストアド プロシージャの作成: CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成し、BEGIN と END の間に特定の SQL コードを作成します。
- ストアド プロシージャの実行: CALL ステートメントを使用してストアド プロシージャを実行します。CALL ステートメントの後にストアド プロシージャ名とパラメータが続きます。
たとえば、次の例では、単純な MySQL ストアド プロシージャを作成します。
DELIMITER $$
CREATE PROCEDURE Get_Customer
(
IN `cust` varchar(255)
ログイン後にコピー
##) # )
BEGIN
SELECT *
FROM customer
WHERE customer_name=cust;
ログイン後にコピー
END$$
DELIMITER ;
ストアド プロシージャを実行します:
CALL
Get_Customer('John' );
2. MySQL 関数
ストアド プロシージャと同様に、MySQL 関数も特定の関数を含むコード ブロックですが、異なるのは、関数が関数の値を返すことです。呼び出し元を使用しますが、ストアド プロシージャには戻り値は必要ありません。
MySQL は、システム関数とカスタム関数の 2 種類の関数をサポートしています。
システム関数は、内部的に事前定義された一連のルールに基づいて MySQL によって提供される関数であり、最も一般的なニーズを満たすことができます。例:
① ABS(): 絶対値を返します。
② LENGTH(): 文字列の長さを返します。
③ CONCAT(): 結合された文字列を返します。
カスタム機能とは、ニーズに基づいて独自に設計した機能であり、高度なカスタマイズが可能です。カスタム関数は、CREATE FUNCTION ステートメントを使用して作成し、関数の入力パラメーターと戻り値の型を指定する必要があります。
次の例では、顧客の残高を取得するために GetCustomerBalance という名前のカスタム関数を作成します。
DELIMITER $$
CREATE FUNCTION
GetCustomerBalance ( custname varchar(255) )
RETURNS 10進数(15,2)
BEGIN
DECLARE cbalance decimal(15,2);
SELECT balance INTO ccbalance FROM customers WHERE name=custname;
RETURN ccbalance;
ログイン後にコピー
END$$
DELIMITER ;
SELECTステートメントを使用してカスタム関数をテストします:
SELECT
GetCustomerBalance('John');
3. 概要
この記事では、MySQL ストアド プロシージャと関数の基礎知識、使い方、使用上の注意点を紹介します。ストアド プロシージャとストアド関数を使用すると、データベースの管理とメンテナンスの効率が大幅に向上し、コードの再利用性とパフォーマンスが向上し、データベース接続管理の負担が軽減されます。具体的な実践では、特定のニーズに応じて対応する機能を選択し、柔軟に適用する必要があります。
以上がmysqlストアドプロシージャ関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。