컴퓨터 과학/데이터 베이스

MySQL에서 사용자 변수와 PREPARE/EXECUTE 활용하기

Data Jun 2025. 8. 21. 14:13

사용자 변수 선언하기

MySQL에서는 @변수명 형태로 사용자 변수를 선언하고 값을 저장할 수 있습니다.

SET @myVar1 = 5;
SET @myVar2 = 3;
SET @myVar3 = 4.25;
SET @myVar4 = '가수 이름==> ';

이렇게 하면 @myVar1, @myVar2, @myVar3, @myVar4 네 개의 변수가 생성됩니다.

  • 정수, 실수, 문자열 모두 저장 가능합니다.

 

변수 값 출력하기

SELECT 문으로 변수를 확인할 수 있습니다.

SELECT @myVar1;                -- 5
SELECT @myVar2 + @myVar3;      -- 3 + 4.25 = 7.25

 

변수와 컬럼 함께 사용하기

변수를 SQL 쿼리 안에서도 활용할 수 있습니다.

SELECT @myVar4, Name 
FROM usertbl 
WHERE height > 180;

 

 

PREPARE / EXECUTE로 동적 쿼리 실행하기

MySQL에서는 PREPARE 구문을 사용해 실행할 SQL 문을 미리 준비하고, EXECUTE로 실행할 수 있습니다.

SET @myVar1 = 3;

PREPARE myQuery
  FROM 'SELECT Name, height FROM usertbl ORDER BY height LIMIT ?';

EXECUTE myQuery USING @myVar1;

 

  • ? → 실행 시 값이 바인딩될 자리 표시자(placeholder)
  • USING @myVar1 → 변수 @myVar1 값을 ?에 대입 (즉, LIMIT 3)
  • 실행 결과 → 키가 큰 순서대로 상위 3명의 이름과 키 출력

 

정리

  • 사용자 변수(@변수명): 쿼리 내에서 값을 저장하고 활용 가능
  • PREPARE + EXECUTE: 동적으로 쿼리를 만들어 실행할 때 사용
  • 활용 예시: TOP N 출력, 조건값 바인딩, 반복문 안에서 쿼리 실행 등