MySQL は、一般的に使用されるリレーショナル データベース管理システムであり、その柔軟性、効率性、セキュリティの点で開発者の間で人気があります。 MySQL の重要な機能とも言えるストアド プロシージャですが、この記事では MySQL ストアド プロシージャの定義について詳しく説明します。
1. ストアド プロシージャの定義
ストアド プロシージャはコンパイルされた SQL コード ブロックであり、SQL ステートメントと制御構造で構成できます。 SQL ステートメントとは異なり、ストアド プロシージャはデータベースに保存され、パラメータやパラメータ タイプを割り当てることができます。
ストアド プロシージャは、一連の SQL ステートメントを実行できます。これらの SQL ステートメントでは、実行に時間がかかる操作や、複数回呼び出す必要がある操作が必要になる場合があります。ストアド プロシージャを使用すると、クライアントとデータベース サーバー間の通信が削減され、データ アクセスが高速化されます。
2. ストアド プロシージャの作成
MySQL でストアド プロシージャを作成するには、CREATE PROCEDURE ステートメントを使用できます。構文形式は次のとおりです。 、procedure_name はストアド プロシージャの名前、parameter_name はストアド プロシージャのパラメータ名、data_type はパラメータのデータ型です。
ストアド プロシージャにパラメーターが必要な場合は、1 つ以上のパラメーターの名前と型を指定する必要があります。パラメータは、IN、OUT、または INOUT タイプとして定義できます。 IN タイプは受信パラメータを指し、OUT タイプは発信パラメータを指し、INOUT タイプは入力パラメータと出力パラメータの両方を指します。
次は、単純なストアド プロシージャの例です:
CREATE PROCEDURE procedure_name([IN | OUT | INOUT] parameter_name data_type) BEGIN -- 执行语句 END;
このコードでは、add_student という名前のストアド プロシージャを定義します。これは 2 つの IN パラメータを受け入れます。1 つは学生名 (student_name) です。 、1 つは生徒の年齢 (年齢) であり、実行結果をフィードバックするための OUT パラメーター (結果) も提供されます。
3. ストアド プロシージャの使用
ストアド プロシージャを作成した後、CALL ステートメントを使用してそれを呼び出すことができます。構文形式は次のとおりです。
CREATE PROCEDURE add_student(IN student_name VARCHAR(100), IN age INT, OUT result VARCHAR(100)) BEGIN INSERT INTO student(student_name,age) VALUES(student_name,age); SET result = '添加成功'; END;
ここで、procedure_name はストアド プロシージャの名前であり、arguments はストアド プロシージャに渡す必要があるパラメータです。
上で作成した例では、次のようにストアド プロシージャを呼び出すことができます:
CALL procedure_name(arguments);
ストアド プロシージャを呼び出すとき、生徒の名前と年齢のパラメータを渡し、結果も A に渡します。変数@結果。ストアド プロシージャの実行が完了したら、SELECT ステートメントを使用して結果を表示できます:
CALL add_student('张三',18,@result);
4. ストアド プロシージャの利点
単純な SQL ステートメントと比較して、ストアド プロシージャには次のような特徴があります。次の利点があります:
##アプリケーションのパフォーマンスの向上
複雑な操作の簡素化
データ セキュリティの強化
デバッグが難しい
移植性が低い
パフォーマンスの問題が発生する可能性がある
以上がmysqlはストアドプロシージャを定義しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。