SQLでストアドプロシージャを作成する方法は?



SQLのプロシージャに関するこの記事は、プロシージャとは何か、および実装時にデータベースのパフォーマンスがどのように向上するかを理解するのに役立ちます。

プロシージャは、で作成および保存できるサブプログラムです。 データベースオブジェクトとして。他の言語と同じように、でプロシージャを作成および削除できます。 SQL 同じように。この記事では、構文と例を使用してSQLのプロシージャを調べてみましょう。

この記事で説明されているトピックは次のとおりです。





SQLのプロシージャとは何ですか?

の手順 (多くの場合、ストアドプロシージャと呼ばれます)、アプリケーションの特定のビジネスロジックをカプセル化する再利用可能なユニットです。 SQLプロシージャは、SQLステートメントとロジックのグループであり、特定のタスクを実行するためにコンパイルおよび格納されます。

SQLプロシージャ-SQLのプロシージャ-Edureka



以下にリストされているのは、SQLプロシージャーの主要な機能です。

  • 非常にシンプルなものを使用しているため、実装が簡単です高レベルで強く型付けされた言語
  • 次の3種類のパラメータをサポートします。入力、出力、および入出力パラメーター。
  • 同等のものよりも信頼性が高い外部手順。
  • SQLプロシージャは、再利用性と保守性を促進します。
  • シンプルでありながら強力な条件およびエラー処理モデルをサポートします。
  • ステータス値を呼び出し元のプロシージャまたはバッチに返し、成功または失敗、および失敗の理由を示します。

プロシージャとは何か、なぜそれらが必要なのかがわかったところで、SQLのプロシージャの構文と例について説明しましょう。

SQLのプロシージャの構文

以下に、SQLでプロシージャを作成する基本的な構文を示します。



Javaの力
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [IN | OUT | IN OUT] type [])] IS BEGIN [declaration_section] execute_section //ストアドプロシージャで使用されるSQLステートメントENDGO

構文用語

パラメータ

パラメータは、任意の値を保持する変数ですサブプログラムがメインコードと値を交換できる有効なSQLデータ型。言い換えれば、parametersは、値をプロシージャに渡すために使用されます。パラメータには、次の3種類があります。

  • :Thisはデフォルトパラメータであり、常に呼び出し側プログラムから値を受け取ります。これはサブプログラム内の読み取り専用変数であり、その値をサブプログラム内で変更することはできません。
  • でる: ですサブプログラムから出力を取得するために使用されます。
  • IN OUT: このパラメータは、入力の提供とサブプログラムからの出力の取得の両方に使用されます。

その他の用語

  • プロシージャ名 プロシージャーの名前を指定します。それはユニークでなければなりません。
  • [OR REPLACE]オプションを使用すると、既存のプロシージャを変更できます。
  • IS |条項として、彼らはストアドプロシージャを実行するためのコンテキスト。違いは、プロシージャが他のブロックにネストされている場合はキーワード「IS」が使用され、プロシージャがスタンドアロンの場合は「AS」が使用されることです。
  • Code_Blockは、ストアドプロシージャ内のすべての処理を処理するプロシージャステートメントを宣言します。 code_blockの内容は、によって使用されるルールと手続き型言語によって異なります。 データベース

SQLの手順:例

例1

次の例では、実行時にウェルカムメッセージを画面に表示する簡単な手順を作成します。次に、手順は次のようになります。

CREATE OR REPLACE PROCEDURE welcome_msg(para1_name IN VARCHAR2)IS BEGIN dbms_output.put_line( ‘Hello World!' || para1_name)END /

ストアドプロシージャを実行します。スタンドアロンプ​​ロシージャは、2つの方法で呼び出すことができます&minus

  • を使用して 実行する キーワード
  • SQLブロックからプロシージャの名前を呼び出す

上記のプロシージャは、次のようにExecuteキーワードを使用して呼び出すことができます。

EXEC welcome_msg(「Edurekaへようこそ!」)

出力

'こんにちは世界'エドゥレカへようこそ

手順が実行され、メッセージは「Hello World!エドゥレカへようこそ」。

例2

EmployeId、Firstname、Lastname、DepartmentDetailsなどのEmplyoeeの詳細を含むテーブルがあるとします。

この例では、次の場合に従業員名を返すSQLプロシージャを作成します。 EmployeId ストアドプロシージャへの入力パラメータとして指定されます。次に、手順は次のようになります。

作成PROCEDUREGetStudentName(@employeeID INT、-入力パラメーター、従業員のemployeID @employeName VARCHAR(50)OUT-出力パラメーター、従業員のemployeeName AS BEGIN SELECT @ employeeName = Firstname + '' + Lastname FROM Employee_Table WHERE EmployeId = @ employeeID終わり

実行する手順:

  • @employeNameをnvarchar(50)として宣言します
  • EXEC GetStudentName 01、@ employeName出力
  • @employeNameを選択します

入力として従業員IDを指定する上記の手順では、その特定の従業員の名前が返されます。出力パラメータtがあると仮定します最初に、出力値を収集するために変数を宣言する必要があります。それでは、SQLのプロシージャの利点を確認しましょう。

SQLのプロシージャの利点

SQLのストアドプロシージャの主な目的は、直接非表示にすることです SQLクエリ コードから、データの選択、更新、削除などのデータベース操作のパフォーマンスを向上させます。 SQLのプロシージャの他の利点は次のとおりです。

  • データベースサーバーに送信される情報の量を減らします。ネットワークの帯域幅が狭い場合、これはより重要な利点になる可能性があります。
  • コードの再利用性を有効にします
  • ストアドプロシージャで使用されるテーブルにアクセス許可を与える代わりに、ユーザーにストアドプロシージャを実行するためのアクセス許可を付与できるため、セキュリティが強化されます。
  • 他のSQLプロシージャまたは他の言語で実装されたプロシージャへのネストされたプロシージャ呼び出しをサポートします。

結論として、SQLのプロシージャ(ストアドプロシージャ)コードを再利用する可能性を高めるだけでなく、データベースのパフォーマンスも向上させます。どうやって?ネットワークを介して送信される情報の量を減らすことにより、ネットワークのトラフィックを減らすことによって。これで、この記事は終わりです。

あなたがについてもっと知りたいなら MySQL このオープンソースのリレーショナルデータベースを理解してから、 インストラクター主導のライブトレーニングと実際のプロジェクト経験が付属しています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。

質問がありますか?この「SQLの手順」の記事のコメントセクションにその旨を記載してください。折り返しご連絡いたします。