SQLにおける変数とパラメータの主な違いは、変数が特定の型の単一のデータ値を保持するのに役立つのに対し、パラメータはストアドプロシージャや関数間でデータを交換するのに役立つという点です。
SQL (Structured Query Language) は、リレーショナルデータベースでデータを保存、管理、検索するためのコンピュータ言語です。
MSSQLなどのRDBMSでは変数とパラメータを使用し、SQLプロシージャ文の任意の場所でこれらを参照することができます。
SQLにおける変数とは
SQLにおける変数とは、特定の型のデータ値を1つだけ保持することができるオブジェ クトです。
さらに、ループ制御構造の中で反復回数をカウントするカウンタとして使用することも可能です。
また、フロー文の制御でテストするためのデータ値を保持するのにも役立ちます。
さらに、ストアドプロシージャのリターンコードや関数の戻り値から戻ってくるデータ値を保存するのにも役立ちます。
DECLARE文は、変数を初期化するのに役立つ。
変数には、それを識別するための名前を付ける必要があります。
そのため、最初の文字として@を1つ使用します。
次に、プログラマーはその変数にシステム提供またはユーザー定義のデータ型と長さを割り当てなければなりません。
一般に、変数はそれが宣言されたストアドプロシージャの中で使用される。
例として、次のようなものがあります。
MyResult は int 型の変数です。
DECLARE @MyResultint;
また、次のように複数の変数を宣言することも可能である。
3つの変数を宣言している。
FirstName、LastName、Ageの3つの変数を宣言しています。
DECLARE @FirstName varchar (20), @LastName varchar (20), @Age int.これは、FirstName、LastName、Ageの3つの変数を宣言しています。
初めて変数を宣言する場合、その値はNULLに設定されます。
また、変数に値を割り当てるには、SETステートメントを使用します。
StudentDBを使用します。
実行
DECLARE @FirstNamevarchar(20)、@Age int;
SET @FirstName = “Ann”;
SET @Age = 20;
SELECT FirstName, LastName, City, Age from StudentDetails
WHERE FirstName = @FirstName or Age = @Age;
GO
上記のSQLスクリプトは、2つの変数を宣言しています。
FirstNameとAgeです。
SET文は、それらに値を割り当てます。
最後に、select文は、これらの変数を使用してStudentDetailsテーブルから値を取得するのに役立ちます。
SQLにおけるパラメータとは
SQLのパラメータは、ストアドプロシージャや関数間でデータを交換するのに役立ちます。
入力パラメータを使用すると、呼び出し元はストアドプロシージャや関数にデータ値を渡すことができます。
一方、出力パラメータの助けを借りて、ストアドプロシージャは呼び出し元にデータ値を返すことができます。
さらに、各ストアドプロシージャは、呼び出し元に対して整数の戻りコードを返します。
ただし、ストアドプロシージャがリターンコードに明示的に値を設定しない場合、0を返します。
CREAT PROCEDURE MyProcedure @EmployeeID INT, @MaxTotal INT OUTPUT
AS
DECLARE @ErrorSave INT
設定 @ErrorSave = 0
選択FirstName、LastName、City FROM HR.table1
WHERE 従業員ID = @EmplyeeID
もし (@@error <>0)
SET @ErrorSave == @@ERROR
SELECT @MaxTotal = MAX(TotalDue)
FROM Sales.table2;
if (@@error <>0)
SET @ErrorSave = @@ERROR
RETURN @ErrorSave
GO
MySample は、1 つの入力パラメーターを受け取り、1 つの出力パラメーターを返すプロシージャです。
入力パラメータ @EmployeeID を使って select 文が実行されます。
次に、0 以外の値があれば @ErrorSave に保存されます。
次に、出力パラメータ@MaxTotalにMAX(TotalDue)を代入しています。
最後に、SELECT文にエラーがある場合は0が返されます。
そうでない場合は、最後のエラーが返されます。
SQLにおける変数とパラメーターの違い
定義
SQLにおける変数とは、特定の型の単一のデータ値を保持することができるオブジェクトです。
これに対して、SQLのパラメータは、ストアドプロシージャと関数の間でデータを交換することができるオブジェクトです。
これらの定義は、SQLにおける変数とパラメータの基本的な違いを説明するものです。
使用方法
SQLにおける変数とパラメータの主な違いは、その使用方法です。
SQLの変数は特定の型の単一のデータ値を保持するのに役立ち、SQLのパラメータは関数やストアドプロシージャの間でデータを交換するのに役立ちます。
結論
- 結論として、SQLにおける変数とパラメータの主な違いは、変数が特定の型の単一のデータ値を保持するのに役立ち、パラメータはストアドプロシージャや関数間でデータを交換するのに役立つということです。