SQL 변수: SQL Server 변수 선언, 설정 및 선택

SQL Server의 변수란 무엇입니까?

MS SQL에서 변수는 메모리 위치에 대한 자리 표시자 역할을 하는 객체입니다. 변수는 단일 데이터 값을 보유합니다.

SQL의 변수 유형: 로컬, 글로벌

MS SQL에는 두 가지 유형의 변수가 있습니다.

  1. 지역 변수
  2. 전역 변수.

그러나 사용자는 지역 변수만 생성할 수 있습니다.

아래 그림은 에서 사용할 수 있는 두 가지 유형의 변수를 설명합니다. MS SQL 서버.

SQL 변수
SQL Server의 변수 유형

지역 변수

  • 사용자가 지역 변수를 선언합니다.
  • 기본적으로 지역 변수는 다음으로 시작합니다. @.
  • 모든 지역 변수 범위에는 다음과 같은 제한이 있습니다. 현재 배치 또는 절차 특정 세션 내에서.

글로벌 변수

  • 시스템은 전역 변수를 유지 관리합니다. 사용자는 이를 선언할 수 없습니다.
  • 전역 변수는 다음으로 시작합니다. @@
  • 저장한다 세션 관련 정보.

SQL에서 변수를 선언하는 방법

  • 배치 또는 프로시저에서 변수를 사용하기 전에 다음을 수행해야 합니다. 변수를 선언합니다.
  • DECLARE 명령은 메모리 위치에 대한 자리 표시자 역할을 하는 변수를 DECLARE하는 데 사용됩니다.
  • 한 번 선언된 변수만 이후 배치 또는 프로시저 부분에서 사용할 수 있습니다.

TSQL 구문:

DECLARE  { @LOCAL_VARIABLE[AS] data_type  [ = value ] }

규칙 :

  • 선언하는 동안 초기화는 선택 사항입니다.
  • 기본적으로 DECLARE는 변수를 NULL로 초기화합니다.
  • 'AS' 키워드를 사용하는 것은 선택사항입니다.
  • 하나 이상의 지역 변수를 선언하려면 첫 번째 지역 변수 정의 뒤에 쉼표를 사용한 후 다음 지역 변수 이름과 데이터 형식.

변수 선언의 예

쿼리: 'AS'로

DECLARE @COURSE_ID AS INT;

쿼리: 'AS' 없음

DECLARE @COURSE_NAME VARCHAR (10);

쿼리: 두 개의 변수를 DECLARE

DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);

SQL 변수에 값 할당

다음에서 변수에 값을 할당할 수 있습니다.방법:

  1. DECLARE 키워드를 사용하여 변수를 선언하는 동안.
  2. SET 사용
  3. SELECT 사용

세 가지 방법을 모두 자세히 살펴보겠습니다.

DECLARE 키워드를 사용하여 변수를 선언하는 동안

T-SQL 구문:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

여기서 데이터 유형 뒤에 '='를 사용하고 그 뒤에 할당할 값을 사용할 수 있습니다.

검색어 :

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

SQL 변수에 값 할당

SQL SET 변수 사용

때로는 선언과 초기화를 별도로 유지하고 싶을 때가 있습니다. SET을 사용하면 변수를 선언한 후 변수에 값을 할당할 수 있습니다. 다음은 SET를 사용하여 값을 할당하는 다양한 방법입니다.

예시: SET을 사용하여 변수에 값 할당

구문 :

DECLARE @Local_Variable <Data_Type>
SET @Local_Variable =  <Value>

검색어 :

DECLARE @COURSE_ID AS INT
SET @COURSE_ID = 5
PRINT @COURSE_ID

SQL 세트 변수

예시: 값을 할당합니다. 여러 변수 SET을 사용합니다.

구문 :

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>,
SET @Local_Variable_1 = <Value_1>
SET @Local_Variable_2 = <Value_2>

규칙 : 하나의 SET 키워드를 사용하여 다음에만 값을 할당할 수 있습니다. 하나의 변수.

검색어 :

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SET @COURSE_ID = 5
SET @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

SQL 세트 변수

예시: 변수에 값을 할당 스칼라 하위 쿼리 SET을 사용하여

구문 :

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)

규칙 :

  • 쿼리를 괄호로 묶습니다.
  • 쿼리는 스칼라 쿼리여야 합니다. 스칼라 쿼리는 결과가 한 행과 한 열로만 있는 쿼리입니다. 그렇지 않으면 쿼리에서 오류가 발생합니다.
  • 쿼리가 XNUMX개 행을 반환하면 변수는 EMPTY, 즉 NULL로 설정됩니다.

인수: 아래에 표시된 것처럼 두 개의 열이 있는 'Guru99'라는 테이블이 있다고 가정해 보겠습니다.

SQL 세트 변수

추가 튜토리얼에서는 'Guru99' 테이블을 사용할 것입니다.

예 1 : 하위 쿼리가 결과로 하나의 행을 반환하는 경우.

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3)
PRINT @COURSE_NAME

SQL 세트 변수

예 2: 하위 쿼리가 결과로 XNUMX행을 반환하는 경우

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

이 특별한 경우 변수 값은 EMPTY, 즉 NULL입니다.

SQL 세트 변수

SQL SELECT 변수 사용

SET과 마찬가지로 SELECT를 사용하여 변수에 값을 할당하고 DECLARE를 사용하여 변수를 선언할 수도 있습니다. 다음은 SELECT를 사용하여 값을 할당하는 다양한 방법입니다.

예시: SELECT를 사용하여 변수에 값 할당

구문 :

DECLARE @LOCAL_VARIABLE <Data_Type>
SELECT @LOCAL_VARIABLE = <Value>

검색어 :

DECLARE @COURSE_ID INT
SELECT @COURSE_ID = 5
PRINT @COURSE_ID

SQL 선택 변수

예시: SELECT를 사용하여 여러 변수에 값 할당

구문 :

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>,  @Local_Variable _2 = <Value_2>

규칙 : SET과 달리 SELECT는 값을 할당하는 데 사용할 수 있습니다. 여러 변수에 로 구분 콤마.

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

SQL 선택 변수

예시: SELECT를 사용하여 하위 쿼리로 변수에 값 할당

구문 :

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)

규칙 :

  • 쿼리를 괄호로 묶습니다.
  • 쿼리는 스칼라 쿼리여야 합니다. 스칼라 쿼리는 결과가 한 행과 한 열인 쿼리입니다. 그렇지 않으면 쿼리가 오류를 발생시킵니다.
  • 쿼리가 XNUMX개의 행을 반환하는 경우 변수는 EMPTY, 즉 NULL입니다.
  • 'Guru99' 테이블을 다시 생각해 보세요.

예 1 : 하위 쿼리가 결과로 하나의 행을 반환하는 경우.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1)
PRINT @COURSE_NAME

SQL 선택 변수

예 2 : 하위 쿼리가 결과적으로 XNUMX행을 반환하는 경우

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

이 특별한 경우 변수는 EMPTY, 즉 NULL입니다.

SQL 선택 변수

예 3 : 일반 SELECT 문을 사용하여 변수에 값을 할당합니다.

구문 :

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>

규칙 :

  • SET와 달리 쿼리 결과가 여러 행인 경우 변수 값은 마지막 행의 값으로 설정됩니다.
  • 쿼리가 XNUMX개 행을 반환하면 변수는 EMPTY, 즉 NULL로 설정됩니다.

쿼리 1: 쿼리는 하나의 행을 반환합니다.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3
PRINT @COURSE_NAME

SQL 선택 변수

쿼리 2: 쿼리는 여러 행을 반환합니다.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99
PRINT @COURSE_NAME

이 특별한 경우에 변수 값은 다음과 같습니다. 마지막 행의 값으로 설정.

SQL 선택 변수

쿼리 3: 쿼리는 XNUMX개의 행을 반환합니다.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5
PRINT @COURSE_NAME

이 특별한 경우 변수는 EMPTY, 즉 NULL입니다.

SQL 선택 변수

기타 SQL 변수 예

쿼리에서 변수 사용

검색어 :

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

기타 SQL 변수

SQL Server 변수에 대한 흥미로운 사실!

  • 로컬 변수는 PRINT 뿐만 아니라 SELECT COMMAND를 사용하여 표시될 수 있습니다.
  • Table Data Type은 선언 시 'AS' 사용을 허용하지 않습니다.
  • SET은 ANSI 표준을 준수하지만 SELECT는 그렇지 않습니다.
  • @라는 이름의 지역 변수를 생성하는 것도 허용됩니다. 예를 들어 다음과 같이 선언할 수 있습니다.
    'DECLARE @@ as VARCHAR (10)'
    

제품 개요

  • 변수는 자리 표시자 역할을 하는 객체입니다.
  • 두 가지 유형의 변수가 존재합니다: 로컬 및 글로벌
  • 변수는 다음의 세 가지 방법으로 할당할 수 있다. 1) DECLARE를 사용하는 경우 2) SET을 사용하는 경우 3) SELECT를 사용하는 경우