ホームページ  >  記事  >  データベース  >  SQLストアドプロシージャの書き方

SQLストアドプロシージャの書き方

青灯夜游
青灯夜游オリジナル
2021-01-22 14:26:2624510ブラウズ

記述方法は「CREATE PROCEDURE プロセス名([プロセスパラメータ]) プロセス本体[プロセスパラメータ] 形式[IN|OUT|INOUT] パラメータ名型」です。プロシージャ名は、組み込み関数と同じ名前を選択しないようにする必要があります。そうしないとエラーが発生します。プロシージャ本体は BEGIN で始まり END で終わります。

SQLストアドプロシージャの書き方

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。