MySQL에서 변수 선언하는 방법
MySQL에서는 SELECT 명령어와 SET 명령어를 활용해 변수를 선언하고 값을 할당할 수 있습니다. 변수를 선언할 때는 이름 앞에 반드시 기호 '@'를 접두사로 붙여야 합니다.
1. 변수 선언 기본 문법
SELECT @yourVariableName;
여기서 '@' 기호는 해당 변수가 사용자 정의 변수(user-defined variable)임을 나타냅니다. 접두사가 없으면 지역 변수(local variable)를 의미하며, '@@'처럼 두 개를 붙이면 서버 시스템 변수(server system variable)를 뜻합니다. 이 글에서는 사용자 정의 변수를 중심으로 살펴보겠습니다.
2. SET으로 값 할당하기
선언한 변수에 값을 할당하려면 SET 명령어를 사용합니다.
SET @yourVariableName=value;
참고: SELECT 문으로 변수를 처음 조회하면 값이 NULL로 표시되며, SET 명령어로 값을 할당한 후에는 지정한 값이 저장됩니다.
3. 실습 예제
먼저 변수를 선언하고 현재 값을 확인해 보겠습니다.
mysql> SELECT @engine;
쿼리를 실행하면 변수는 초기값으로 NULL을 가집니다. 실행 결과는 다음과 같습니다.
+---------+ | @engine | +---------+ | NULL | +---------+ 1 row in set (0.00 sec)
이제 SET 명령어로 변수에 값을 할당합니다.
mysql> SET @engine='start'; Query OK, 0 rows affected (0.00 sec)
값이 제대로 할당되었는지 SELECT 문으로 확인해 보겠습니다.
mysql> SELECT @engine;
쿼리 실행 후 업데이트된 값이 출력됩니다.
+---------+ | @engine | +---------+ | start | +---------+ 1 row in set (0.00 sec)
4. 변수 값 변경하기
같은 방식으로 기존 변수의 값도 언제든 변경할 수 있습니다.
mysql> SET @engine='close'; Query OK, 0 rows affected (0.00 sec)
SELECT 명령어로 변경된 결과를 확인합니다.
mysql> SELECT @engine;
실행 결과는 아래와 같습니다.
+---------+ | @engine | +---------+ | close | +---------+ 1 row in set (0.00 sec)
출력 결과에서 확인할 수 있듯이, @engine 변수의 값이 'close'로 성공적으로 변경되었습니다.
핵심 정리
- @변수명: 사용자 정의 변수(세션 단위로 유지됨)
- @@변수명: 서버 시스템 변수
- 접두사 없음: 저장 프로시저 내부 등에서 사용되는 지역 변수
- 선언 직후 초기값은 NULL이며, SET 명령어로 값을 자유롭게 할당·변경 가능