logo

SQL ストアド プロシージャ

SQL のストアド プロシージャは、保存して何度も再利用できる SQL クエリのグループです。 SQL クエリを書き直す必要性が減るため、非常に便利です。データベース管理の効率、再利用性、セキュリティが強化されます。

ユーザーはストアド プロシージャにパラメータを渡し、ストアド プロシージャが渡されたパラメータ値に基づいて動作できるようにすることもできます。

ストアド プロシージャは、1 つ以上の処理を実行するために作成されます。 DML データベースに対する操作。のグループにほかなりません。 SQL文 パラメータの形式で何らかの入力を受け入れ、何らかのタスクを実行し、値を返す場合と返さない場合があります。



構文

SQL でストアド プロシージャを使用するための 2 つの重要な構文は次のとおりです。

ストアド プロシージャを作成するための構文

CREATE PROCEDURE プロシージャ名
(パラメータ 1 データ型、パラメータ 2 データ型、…)
として
始める
— 実行されるSQL文
終わり

ストアド プロシージャを実行する構文

EXEC プロシージャ名 パラメータ 1 の値、パラメータ 2 の値、..

パラメータ

最も重要な部分はパラメータです。パラメータはプロシージャに値を渡すために使用されます。パラメータには次のようなさまざまな種類があります。

  1. 始める: これは直接実行されるもの、または実行可能な部分であると言えます。
  2. 終わり: ここまででコードが実行されます。

SQL ストアド プロシージャの例

より深く理解するために、SQL のストアド プロシージャの例を見てみましょう。

SampleDB という名前のデータベース、いくつかのサンプル データを含む Customers という名前のテーブル、および GetCustomersBy Country という名前のストアド プロシージャを想像してください。

このストアド プロシージャはパラメーター Country を受け取り、指定された国に一致する顧客テーブルから顧客のリストを返します。最後に、スリランカの顧客のリストを取得するために、パラメーター Sri Lanka を指定してストアド プロシージャが実行されます。

クエリ:

-- Create a new database named 'SampleDB' CREATE DATABASE SampleDB;  -- Switch to the new database USE SampleDB;  -- Create a new table named 'Customers' CREATE TABLE Customers (  CustomerID INT PRIMARY KEY,  CustomerName VARCHAR(50),  ContactName VARCHAR(50),  Country VARCHAR(50) );  -- Insert some sample data into the Customers table INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country) VALUES (1, 'Shubham', 'Thakur', 'India'),  (2, 'Aman ', 'Chopra', 'Australia'),  (3, 'Naveen', 'Tulasi', 'Sri lanka'),  (4, 'Aditya', 'Arpan', 'Austria'),  (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain');  -- Create a stored procedure named 'GetCustomersByCountry' CREATE PROCEDURE GetCustomersByCountry  @Country VARCHAR(50) AS BEGIN  SELECT CustomerName, ContactName  FROM Customers  WHERE Country = @Country; END;  -- Execute the stored procedure with parameter 'Sri lanka' EXEC GetCustomersByCountry @Country = 'Sri lanka';>

注記: ユーザー アカウントにデータベースを作成するために必要な権限があることを確認する必要があります。管理者権限を持つ別のユーザーとしてログインしてみるか、データベース管理者に連絡してユーザー アカウントに必要な権限を付与してもらうことができます。クラウドベースのデータベース サービスを使用している場合は、ユーザー アカウントとその権限が正しく構成されていることを確認してください。

出力:

顧客名 連絡先
ナヴィーン トゥラシ

SQL ストアド プロシージャに関する重要なポイント

  • ストアド プロシージャは、保存できる準備済みの SQL コードであるため、コードを何度も再利用できます。
  • ストアド プロシージャを使用すると、繰り返し使用されるコードをデータベースに保存し、クライアントからではなくそこから実行できます。これにより、データベース設計によりモジュール化されたアプローチが提供されます。
  • ストアド プロシージャはコンパイルされてデータベースに保存されるため、非常に効率的です。 SQL Server は各ストアド プロシージャを 1 回コンパイルし、実行プランを再利用します。これにより、ストアド プロシージャが繰り返し呼び出されるときのパフォーマンスが大幅に向上します。
  • ストアド プロシージャにより、データのセキュリティが強化されます。ユーザーはステートメントを直接実行しなくてもストアド プロシージャを実行できます。したがって、ユーザーには、基礎となるテーブルに対する権限がなくても、ストアド プロシージャを実行する権限を与えることができます。
  • ストアド プロシージャを使用すると、ネットワーク トラフィックと遅延が削減され、アプリケーションのパフォーマンスが向上します。ストアド プロシージャへの 1 回の呼び出しで、多くのステートメントを実行できます。
  • ストアド プロシージャでは、エラー処理のサポートが強化されています。
  • ストアド プロシージャを使用すると、テーブル内のデータを変更したり、データベース トランザクション内でこれらの変更をカプセル化したりするなど、高度なデータベース機能を提供できます。