mysqlストアドプロシージャとは何ですか

清浅
リリース: 2019-05-11 16:14:41
オリジナル
4523 人が閲覧しました

MySQL のストアド プロシージャは、データベースに保存された SQL ステートメントのコレクションを指します。ストアド プロシージャが作成され、必要なパラメータが実行時に提供されると、ストアド プロシージャは次のような方法で使用できます。パラメータの実行と戻り値

は、MySQL でストアド プロシージャを作成する機能を提供します。ストアド プロシージャは、MySQL やその他のデータベース管理システムの強力な機能です。次に、この記事では、MySQL のストアド プロシージャについて詳しく紹介しますので、参考にしていただければ幸いです。

mysqlストアドプロシージャとは何ですか

[推奨コース: MySQL チュートリアル ]

ストアド プロシージャ:

ストアド プロシージャは、データベースに保存されている SQL ステートメントのコレクションを指します。ストアド プロシージャにはビジネス ロジックを含めることができます。これは、ストアド プロシージャとビューを区別するための鍵の 1 つです。さらに、ストアド プロシージャはパラメータも受け入れることができ、ストアド プロシージャ内で変数を設定したり、ステートメントを記述したりすることができます。

ストアド プロシージャの仕組み

まずストアド プロシージャを作成し、それを実行します。プロセスの実行時に必要なパラメーターを指定する必要があります。その後、コードで指定された方法でパラメーターを使用してストアド プロシージャが実行されます。たとえば、FruitId パラメーターを受け入れるストアド プロシージャを作成します。ストアド プロシージャはそのパラメータを取得し、それを使用してその特定の果物の在庫を確認できます。したがって、ストアド プロシージャを呼び出すことができます。つまり、別の果物 ID を使用するたびに、値を返し、その在庫に果物がいくつあるかを表示します。

ストアド プロシージャの作成

CREATE PROCEDURE ステートメントを通じてストアド プロシージャを作成できます

CREATE PROCEDURE demo_name(p_1 INT)
BEGIN
  ...code goes here...
END;
ログイン後にコピー

demo_name はストアド プロシージャの名前を指します。および括弧は必須です。パラメーターが含まれていない場合、括弧は空でも構いません。

ストアド プロシージャの本体は、BEGIN キーワードと END キーワードの間にあります。これらのキーワードは、複合ステートメントを記述するために使用されます。複合ステートメントには複数のステートメントを含めることができ、必要に応じてそれらをネストできます。

例: FruitStock という名前のストアド プロシージャを作成します:

DELIMITER //

CREATE PROCEDURE FruitStock(thisFruit SMALLINT)
BEGIN
	SELECT 
		Fruit.FruitName, 
		Fruit.Inventory, 
		Units.UnitName
	FROM 
		Fruit INNER JOIN Units ON
		Fruit.UnitId = Units.UnitId
	WHERE 
		Fruit.FruitId = thisFruit;
END //

DELIMITER ;
ログイン後にコピー

ストアド プロシージャを作成した後、次にこのストアド プロシージャが呼び出されます。

パラメータ 1 を指定して ID を呼び出します。

CALL FruitStock(1);
ログイン後にコピー

ストアド プロシージャの削除

DROP PROCEDURE ステートメントを使用してストアド プロシージャを削除できます。

DROP PROCEDURE FruitStock;
ログイン後にコピー

ストアド プロシージャの変更

ストアド プロシージャでは、次のステートメントを使用してストアド プロシージャ ALTER PROCEDURE を変更できます。

ストアド プロシージャの本体またはそのパラメータを変更する場合は、プロシージャを削除して再度作成する必要があることに注意してください。

例: リストを次の場所に追加します。 Fruit.FruitId

DROP PROCEDURE IF EXISTS FruitStock;
DELIMITER //
CREATE PROCEDURE FruitStock(thisFruit SMALLINT)
BEGIN
	SELECT 
		Fruit.FruitId, 
		Fruit.FruitName, 
		Fruit.Inventory, 
		Units.UnitName
	FROM 
		Fruit INNER JOIN Units ON
		Fruit.UnitId = Units.UnitId
	WHERE 
		Fruit.FruitId = thisFruit;
END //

DELIMITER ;
ログイン後にコピー

によって返されます。 概要: 上記がこの記事の全内容です。皆様のお役に立てれば幸いです。

以上がmysqlストアドプロシージャとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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