[MySQL] 변수 선언 시 @의 의미

이전에 MySQL의 변수에 대해서 포스팅을 한 적이 있었다.
[MySQL] SQL 변수 선언 및 사용
[MySQL] SQL 변수 선언 및 사용MySQL에서 변수를 사용하는 것은 데이터베이스 내에서 반복 작업을 자동화하거나, 복잡한 쿼리를 간결하게 만드는 데 매우 유용하다. MySQL에는 주로 세 가지 종류의
heywantodo.tistory.com
해당 포스팅에서 사용자 정의 변수에 대해 설명할 때, `@`를 붙여야 한다고 설명을 했는데
왜 붙여야 하는지에 대한 설명이 부족했던 것 같아 보충하고자 한다.
세션 변수 (User-defined Variable)
`@` 변수명 형식으로 선언하면, 세션이 유지되는 동안 값을 저장하고 사용할 수 있는 변수다.
일반 쿼리에서는 `@` 없이도 대부분 가능하지만, 여러 SQL문에서 변수를 유지하고 싶다면 필요하다.
SET @var1 = 10;
SELECT @var1; --결과: 10
세션 변수의 특징
- 세션(연결 단위로 유지)
- 미리 선언하지 않아도 바로 사용 가능
- 어떤 데이터 타입이든 저장 가능
- 쿼리 내부에서 사용 가능
다음과 같이 같은 세션 내에서는 다른 SQL 문에서도 `@price`를 사용할 수 있다.
SET @price = 500;
SELECT @price * 2; -- 결과: 1000
정리
구분 | 세션 변수 (@변수명) | 로컬 변수 |
선언 방법 | SET @var = 값; | DECLARE var INT; |
사용 가능 범위 | 세션(연결) 동안 유지됨 | 저장 프로시저, 함수 내부에서만 사용 가능 |
미리 선언 필요 여부 | ❌필요 없음 (바로 사용 가능) | ✅ 반드시 DECLARE 필요 |
시용 예시 | `SET @num = 100;` `SELECT @num` |
`DECLARE num INT;` `SET num = 100;` `SELECT num` |
'💾 Data > SQL' 카테고리의 다른 글
[MySQL] 문자열 다루기 (0) | 2025.01.17 |
---|---|
[MySQL] Prepared Statement (0) | 2025.01.07 |
[MySQL] 프로시저에서의 매개 변수(IN, OUT, IN OUT) (1) | 2024.12.11 |
[MySQL] 프로시저 변수(DECLARE, SET)에 대한 이해 (0) | 2024.12.10 |
[MySQL] 실행중인 쿼리 확인하기 (0) | 2024.12.02 |
[MySQL] 변수 선언 시 @의 의미

이전에 MySQL의 변수에 대해서 포스팅을 한 적이 있었다.
[MySQL] SQL 변수 선언 및 사용
[MySQL] SQL 변수 선언 및 사용MySQL에서 변수를 사용하는 것은 데이터베이스 내에서 반복 작업을 자동화하거나, 복잡한 쿼리를 간결하게 만드는 데 매우 유용하다. MySQL에는 주로 세 가지 종류의
heywantodo.tistory.com
해당 포스팅에서 사용자 정의 변수에 대해 설명할 때, @
를 붙여야 한다고 설명을 했는데
왜 붙여야 하는지에 대한 설명이 부족했던 것 같아 보충하고자 한다.
세션 변수 (User-defined Variable)
@
변수명 형식으로 선언하면, 세션이 유지되는 동안 값을 저장하고 사용할 수 있는 변수다.
일반 쿼리에서는 @
없이도 대부분 가능하지만, 여러 SQL문에서 변수를 유지하고 싶다면 필요하다.
SET @var1 = 10;
SELECT @var1; --결과: 10
세션 변수의 특징
- 세션(연결 단위로 유지)
- 미리 선언하지 않아도 바로 사용 가능
- 어떤 데이터 타입이든 저장 가능
- 쿼리 내부에서 사용 가능
다음과 같이 같은 세션 내에서는 다른 SQL 문에서도 @price
를 사용할 수 있다.
SET @price = 500;
SELECT @price * 2; -- 결과: 1000
정리
구분 | 세션 변수 (@변수명) | 로컬 변수 |
선언 방법 | SET @var = 값; | DECLARE var INT; |
사용 가능 범위 | 세션(연결) 동안 유지됨 | 저장 프로시저, 함수 내부에서만 사용 가능 |
미리 선언 필요 여부 | ❌필요 없음 (바로 사용 가능) | ✅ 반드시 DECLARE 필요 |
시용 예시 | SET @num = 100; SELECT @num |
DECLARE num INT; SET num = 100; SELECT num |
'💾 Data > SQL' 카테고리의 다른 글
[MySQL] 문자열 다루기 (0) | 2025.01.17 |
---|---|
[MySQL] Prepared Statement (0) | 2025.01.07 |
[MySQL] 프로시저에서의 매개 변수(IN, OUT, IN OUT) (1) | 2024.12.11 |
[MySQL] 프로시저 변수(DECLARE, SET)에 대한 이해 (0) | 2024.12.10 |
[MySQL] 실행중인 쿼리 확인하기 (0) | 2024.12.02 |