MSSQL - 변수 선언과 사용 방법

반응형

 

변수의 선언과 호출

변수 선언

  • declare @변수이름 데이터타입
    • declare : 변수 선언 키워드
    • @ : 변수임을 나타내는 키워드, 변수 앞에는 항상 '@'를 사용
  • 예시) myName이란 변수에 문자열이 최대 20자까지 저장 가능하도록 설정
    • 편의상 문자 길이라고 하였지만 사용하는 DBMS에 따라 다를 수 있음
/* declare @변수이름 데이터타입 */
declare @myName char(20)

변수 값 저장

  • set @변수이름 = '값'
    • set : 변수의 값을 저장하는 키워드
  • 예시) myName 이란 변수에 자신의 이름을 저장
/* set @변수이름 = '값' */
set @myName = 'Eunbyeol'

변수 호출

  • select @변수이름
    • select : SQL의 select문과 같음. 즉, 변수의 값을 보기 위해 사용
  • 예시) myName 변수의 값을 확인해보기
/* select @변수이름 */
select @myName

 

  • 쿼리 실행 결과


변수를 이용한 SQL 쿼리

변수를 사용하여 값 입력

  • 테이블에 변수를 이용하여 값을 넣어보기
  • 예시에 사용 될 테이블
    • testId : 인덱스 (기본 키, PK)
    • testName : 이름
    • testAddr : 주소 (Null 허용)

 

* 테이블은 아무 값도 존재하지 않는 상태임

 

  • 자신의 이름을 변수로 저장하고, 테이블에 변수를 사용하여 자신의 이름을 저장해보기
-- 사용 할 데이터베이스 이름
use EunbyeolTestLocalDB

-- 이름을 저장할 문자열 변수 선언
declare @myName char(20)

-- 자신의 이름 저장
set @myName = 'Eunbyeol'

-- 저장이 잘 되었는지 값 확인
select @myName

-- 테이블 이름 : testTable
-- 컬럼 이름 : testName
-- 테이블에 내 이름 저장
insert into testTable (testName) values (@myName) 

-- insert 쿼리가 정상적으로 실행되었는지 확인
select * from testTable

 

  • 확인 결과


변수를 사용하여 데이터 접근

  • 테이블에 변수를 사용하여 원하는 데이터를 출력해보기
  • 예시에 사용 될 테이블
    • testId : 인덱스 (기본 키, PK)
    • testName : 이름
    • testAddr : 주소 (Null 허용)
  • 예시에 사용될 테이블의 데이터
    • testId : 2
    • testName : Eunbyeol
    • testAddr : NULL

testId의 인덱스가 2인 사람의 이름을 출력해보기

-- 인덱스의 번호를 저장할 정수형 변수 선언
declare @myIndex int

-- 정수형 데이터 값 저장
set @myIndex = 2

-- 저장이 잘 되었는지 값 확인
select @myIndex

-- testId : testTable 테이블의 인덱스 컬럼
-- testName : testTable 테이블의 사용자 이름 컬럼
-- testId의 값이 2인 사람의 이름을 출력
select testName from testTable where testId = @myIndex

 

  • 확인 결과


그 외에 변수를 이용하여 limit의 출력 제한을 설정하는 등등

여러가지 활용 방법이 많습니다.

반응형