본문 바로가기
Programming/SQL

[MySQL] SQL 변수 생성 및 활용

by 코딩하는 금융인 2021. 6. 11.

데이터베이스 (DB)는 데이터가 쌓이는 창고로, 이를 활용하는 SQL 쿼리에서 변수 생성은 그렇게 자주 사용하지는 않습니다.

 

하지만, 원하는 테이블을 생성하기 위해서 여러 가지 변수를 만들어 사용하는 경우가 있기에 MySQL의 변수 종류와 활용법을 정리해보았습니다.

 

MySQL 변수 종류

1. 사용자 정의 변수

- 정의

사용자가 직접 정의하여 사용하는 변수로 정수, 10진수, 부동 소수점, 2진수 또는 이진문자열 또는 NULL 값과 같은 제한된 데이터 유형 세트에서 값을 지정할 수 있다.
그리고 변수는 세션(Session)단위로 실행이 되기 때문에, 한 클라이언트에서 정의한 사용자 변수는 다른 클라이언트에서 보거나 사용할 수 없다.

 

- 사용 예시

## 연산자 차이
# SET @변수는 '=', ':='
SET @var1 = 1, @var2 =2;

# SELECT @변수는 ':='
SELECT @var :=1;

2. 로컬 변수

- 정의

DECLARE로 선언하여 변수가 선언되는 블록 BEGIN ~ END로 제한

또한, 선언 후 지역변수 또는 저장 프로시저의 매개변수로 활용 가능

 

- 사용 예시

DELIMITER $$

CREATE PROCEDURE GetUpdatedPrices(itemcount INT)
BEGIN
	DECLARE factor DECIMAL(5, 2);
	SET factor:=3.45;
	SELECT PartNo, Description, itemcount * factor * ListPrice FROM Catalogue;
END
$$

DELIMITER ;

itemcount : Procedure에 값을 전달하는 매개변수

factor : Procedure 내부 변수

 

3. 시스템 변수

- 정의

SQL 내 기본적으로 정의(선언)된 변수들

GLOBAL 또는 Session 단위로 사용 가능

서버 전체의 작업이나 클라이언트 연결 후 작업 등 DB에 영향

 

- 사용 예시

#!<--모든 시스템 변수 확인 -->!#
SHOW GLOBAL VARIABLES;

#!<--특정 시스템 변수 확인 -->!#
SELECT @@VAR1;

#!<--이름이 CHAR로 시작되는 시스템 변수 확인-->!#
SHOW GLOBAL VARIABLES LIKE 'CHAR%';

#!<--세션이나 글로벌 변수 값 설정-->!#
SET GLOBAL VAR1 = 100;
SET @@GLOBAL.VAR1 = 100;

SET VAR2 = 200;
SET SESSION VAR2 = 200;

 

변수 활용 예제

 

References

 

반응형

댓글