ホームページ >データベース >mysql チュートリアル >mysqlストアドプロシージャの作成
MySQL ストアド プロシージャは、一連の SQL ステートメントをデータベースに保存する方法であり、必要に応じて呼び出してこれらのステートメントを実行できます。 MySQL ストアド プロシージャを作成するには、SQL 構文に関する基本的な知識とプログラミングの概念が必要です。
この記事では、MySQL ストアド プロシージャを作成する方法を学び、例を使用してその基本的な構文と作成プロセスを説明します。
MySQL ストアド プロシージャで使用される基本構文は次のとおりです。
CREATE PROCEDURE procedure_name() BEGIN -- SQL statements END;
その中で、CREATE PROCEDURE がキーワードですMySQL ストアド プロシージャの場合、procedure_name はストアド プロシージャの名前です。 BEGIN と END の間のコード ブロックは、ストアド プロシージャによって実行される SQL コードです。
次は、学生情報のクエリに使用される単純なストアド プロシージャの例です。
CREATE PROCEDURE GetStudent() BEGIN SELECT * FROM Student; END;
このストアド プロシージャは GetStudent と呼ばれ、その機能は、ファイル内のすべてのデータを返すことです。学生データテーブル。
MySQL ストアド プロシージャは、入力パラメータと出力パラメータを受け入れることができます。入力パラメータはストアド プロシージャにデータを渡すために使用され、出力パラメータはストアド プロシージャからデータを返すために使用されます。このうち、入力パラメーターと出力パラメーターの両方は、ストアド プロシージャの作成時に指定する必要があります。
次は、入力パラメーターを含むストアド プロシージャの例です。
CREATE PROCEDURE GetStudentByGrade(IN grade INT) BEGIN SELECT * FROM Student WHERE Grade = grade; END;
このストアド プロシージャは GetStudentByGrade という名前で、INT 型の入力パラメーター Grade を持っています。このストアド プロシージャが呼び出されると、成績が Grade と等しいすべての学生レコードが返されます。
MySQL ストアド プロシージャは、変数を使用してデータを保存することもできます。これらの変数は、ストアド プロシージャのコード ブロック内で宣言して使用できます。
次は、変数を使用したストアド プロシージャの例です。
CREATE PROCEDURE GetStudentByClassName(IN class_name VARCHAR(50), OUT student_count INT) BEGIN DECLARE class_id INT; SELECT ClassID INTO class_id FROM Class WHERE ClassName = class_name; SELECT COUNT(*) INTO student_count FROM Student WHERE ClassID = class_id; END;
このストアド プロシージャは GetStudentByClassName という名前で、入力パラメータ class_name と出力パラメータ Student_count の 2 つのパラメータがあります。まず変数 class_id を宣言し、次にクエリを通じて変数の値を取得します。最後に、クエリを通じてクラスに関連付けられた学生の数を計算し、student_count 変数に格納します。
MySQL ストアド プロシージャは、制御ステートメントを使用してコード ブロックの実行を制御できます。一般的な MySQL ストアド プロシージャ制御ステートメントには、IF、CASE、WHILE、および FOR が含まれます。
次に、IF 制御ステートメントを使用したストアド プロシージャの例を示します。
CREATE PROCEDURE GetStudentByID(IN student_id INT) BEGIN DECLARE student_name VARCHAR(50); IF student_id <= 0 THEN SET student_name = 'Invalid ID'; ELSE SELECT StudentName INTO student_name FROM Student WHERE StudentID = student_id; END IF; SELECT student_name; END;
このストアド プロシージャは GetStudentByID という名前で、入力パラメータ Student_id を持っています。まず変数 Student_name を宣言し、次に IF 制御ステートメントを使用して、入力された学生 ID が有効かどうかを確認します。無効な場合は「無効な ID」が返され、有効な場合はデータベースにクエリが実行され、見つかった学生の名前が Student_name 変数に保存されます。
MySQL を使用してストアド プロシージャを作成するには、MySQL コマンド ラインまたは MySQL Workbench を使用します。
MySQL コマンド ラインで、次のコマンドを使用してストアド プロシージャを作成できます:
CREATE PROCEDURE procedure_name() BEGIN -- SQL statements END;
次に、次のコマンドを使用してストアド プロシージャを呼び出すことができます:
CALL procedure_name();
MySQL Workbench で、次の手順を使用してストアド プロシージャを作成できます。
ストアド プロシージャを作成した後、次のコマンドを使用して、MySQL コマンド ラインでストアド プロシージャを呼び出すことができます。
CALL procedure_name();
MySQL Workbench では、次の手順を使用して、ストアド プロシージャを呼び出します:
MySQL ストアド プロシージャは、SQL コードをデータベースに保存する方法です。ストアド プロシージャを使用すると、複雑な SQL クエリや一般的に使用される SQL コードのブロックをデータベースに保存して、後で再利用したり、クエリの効率を向上したりできます。この記事では、MySQL ストアド プロシージャの基本構文、パラメータ、変数、制御ステートメントの使用方法、ストアド プロシージャの作成方法と呼び出し方法を紹介します。この記事が、MySQL ストアド プロシージャを理解し、実際の作業で使用してデータベース操作の効率を向上させるのに役立つことを願っています。
以上がmysqlストアドプロシージャの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。