記述方法は「CREATE PROCEDURE プロセス名([プロセスパラメータ]) プロセス本体[プロセスパラメータ] 形式[IN|OUT|INOUT] パラメータ名型」です。プロシージャ名は、組み込み関数と同じ名前を選択しないようにする必要があります。そうしないとエラーが発生します。プロシージャ本体は BEGIN で始まり END で終わります。
このチュートリアルの動作環境: Windows 7 システム、mysql バージョン 5.8、Dell G3 コンピューター。
(推奨チュートリアル: mysql ビデオ チュートリアル )
MySQL ストアド プロシージャは SQL ステートメントのコレクションです。たとえば、場合によっては、大規模な一連の SQL ステートメントが必要になることがあります。または SQL ステートメントを作成する過程で、いくつかの変数の値を設定する必要がありますが、この時点ではストアド プロシージャを作成することが完全に必要です。
ストアド プロシージャを記述するのは簡単ではありませんが、ストアド プロシージャを使用すると、操作が簡素化され、余分な操作手順が削減され、操作中のエラーが減少し、効率が向上するため、次のように実行する必要があります。可能な限りストアド プロシージャの使い方を学びましょう。
ここではストアドプロシージャの作成方法を中心に紹介します。
CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成できます。構文形式は次のとおりです:
CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体> [过程参数[,…] ] 格式 [ IN | OUT | INOUT ] <参数名> <类型>
構文の説明は次のとおりです:
1 ) プロシージャ名
デフォルトで現在のデータベースに作成されるストアド プロシージャの名前。特定のデータベースにストアド プロシージャを作成する必要がある場合は、名前の前にデータベースの名前 (db_name.sp_name) を付けます。
名前には、MySQL 組み込み関数と同じ名前を選択しないように注意してください。そうしないと、エラーが発生します。
2) プロセス パラメーター
ストアド プロシージャのパラメーター リスト。このうち、4a82531f3fde107146fdd03610e22e4b はパラメータ名、30690cee1a11d5dfbdced93b89f678ee はパラメータのタイプ (任意の有効な MySQL データ タイプにすることができます) です。パラメータが複数ある場合は、パラメータリスト内でパラメータをカンマで区切ります。ストアド プロシージャにはパラメータを含めることはできません (この場合、ストアド プロシージャの名前の後にかっこのペアを追加する必要があります)、または 1 つ以上のパラメータを含めることもできます。
MySQL ストアド プロシージャは、入力パラメータ、出力パラメータ、入出力パラメータという 3 種類のパラメータをサポートしており、それぞれ IN、OUT、INOUT の 3 つのキーワードで識別されます。このうち、入力パラメータはストアド プロシージャに渡すことができ、出力パラメータはストアド プロシージャが演算結果を返す必要がある場合に使用され、入出力パラメータは入力パラメータと出力パラメータの両方として機能します。
パラメータの名前は、データ テーブルの列名と同じであってはいけないことに注意してください。そうでない場合、エラー メッセージは返されませんが、ストアド プロシージャの SQL ステートメントは、パラメータ名を列名として使用すると、エラーが発生します。予測可能な結果。
3) プロシージャ本体
ストアド プロシージャの主要部分 (ストアド プロシージャ本体とも呼ばれます) には、プロシージャの呼び出し時に実行する必要がある SQL ステートメントが含まれています。 。このセクションはキーワード BEGIN で始まり、キーワード END で終わります。ストアド プロシージャ本体に SQL ステートメントが 1 つだけある場合は、BEGIN-END フラグを省略できます。
例:
ShowStuScore という名前のストアド プロシージャを作成します。このストアド プロシージャの機能は、学生の成績情報テーブルから学生の成績情報をクエリすることです
mysql> DELIMITER // mysql> CREATE PROCEDURE ShowStuScore() -> BEGIN -> SELECT * FROM tb_students_score; -> END // Query OK, 0 rows affected (0.09 sec)
結果は、ShowStuScore ストアド プロシージャが正常に作成されたことを示しています。
プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がSQLストアドプロシージャの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。