mysqlストアドプロシージャ関数

王林
リリース: 2023-05-14 11:25:07
オリジナル
426 人が閲覧しました

MySQL ストアド プロシージャと関数は、MySQL データベースにおける 2 つの重要な概念であり、データベースの管理とメンテナンスを効果的に簡素化できます。この記事では、MySQLのストアドプロシージャや関数の基礎知識や使い方、使用上の注意点を詳しく紹介します。

1. MySQL ストアド プロシージャ

MySQL ストアド プロシージャは、特定のタスクを完了するための SQL ステートメントのセットであり、MySQL サーバー上に記述された SQL コードであり、バッチ スクリプトとみなすことができます。入力パラメータを受け入れ、実行中に一時テーブルなどの複雑な操作を作成し、出力パラメータを通じて呼び出し側プログラムに結果を返すことができます。

  1. コードの再利用性の向上: ストアド プロシージャを複数のアプリケーションで共有して呼び出すことができるため、異なるアプリケーション間でのコードの再利用性が大幅に向上します。
  2. パフォーマンスの向上: ストアド プロシージャは事前にコンパイルされているため、同じ操作を複数回実行する場合のコンパイルの繰り返しを回避し、実行効率を向上させることができます。
  3. データベース接続管理の負担を軽減: ストアド プロシージャの実行後、接続が解放されるまでセッション コンテキストが残されるため、ストアド プロシージャの繰り返し実行の時間が短縮され、確立が短縮されます。接続の終了とデータベースコストの削減 接続管理の負担。

MySQL ストアド プロシージャを実装する具体的な方法は次のとおりです:

  1. DELIMITER を使用して区切り文字を設定します: MySQL の区切り文字はデフォルトで「;」であるため、ストアド プロシージャでも「;」が使用されるため、DELIMITER を使用して一意の区切り文字を設定する必要があります。
  2. ストアド プロシージャの作成: CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成し、BEGIN と END の間に特定の SQL コードを作成します。
  3. ストアド プロシージャの実行: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート