2 분 소요

SQL에서는 대입 연산자(Assignment Operators)를 통해 값을 변수나 필드에 할당할 수 있습니다. 이때 사용하는 연산자는 =:= 두 가지가 있으며, 각각의 쓰임새와 특징이 다릅니다. 이 글에서는 대입 연산자의 사용법, 차이점, 주의사항, 실전 예제를 체계적으로 정리했습니다.


1. 대입 연산자의 종류

연산자 설명 특징
= 대입 또는 비교 문맥에 따라 대입 또는 비교 연산
:= 대입 전용 연산자 항상 대입 연산자로만 사용됨

2. = 연산자: 대입 또는 비교

2.1. 대입 연산자로 사용 (SET, UPDATE 문 등)

SET @price = 1000;
UPDATE Reservation
SET RoomNum = 504
WHERE ID = 1;
  • 변수나 필드에 값을 대입할 때 사용
  • =는 이 경우 대입 연산자로 해석됨

2.2. 비교 연산자로 사용 (WHERE, SELECT 문 등)

SELECT *
FROM Reservation
WHERE RoomNum = 504;
  • =는 여기서 비교 연산자로 해석됨
  • RoomNum이 504인 레코드 조회

❗ =는 문맥에 따라 대입 또는 비교로 해석되므로 혼동 주의


3. := 연산자: 항상 대입 전용

  • :=항상 대입 연산자로 해석됩니다
  • 변수 대입 및 SELECT 문 내에서 안전하게 사용 가능

변수 선언 및 값 대입

SET @RoomNum := 504;

SELECT 문 내 변수에 대입

SELECT @RoomNum := RoomNum
FROM Reservation
WHERE Name = '홍길동';
  • 홍길동의 RoomNum 값을 @RoomNum 변수에 대입

4. 실전 예제 모음

4.1. SET 문에서 대입

SET @totalPrice := 150000;

4.2. UPDATE 문에서 필드 값 대입

UPDATE Reservation
SET RoomNum = 101, ReserveDate = '2025-01-01'
WHERE ID = 1;

4.3. SELECT 문에서 := 사용

SELECT @count := COUNT(*)
FROM Reservation;
  • 레코드 총 개수를 @count 변수에 저장

5. 주의사항 및 실전 팁

=의 다중 해석 주의

  • =문맥에 따라 대입 또는 비교로 해석됩니다
  • 비교가 아닌 대입을 명확하게 표현하려면 := 사용이 안전

변수 규칙

  • 변수는 반드시 @ 기호로 시작해야 함
  • 변수는 세션 내에서 유지되며, 로그아웃 시 사라짐

사용 위치 요약

연산자 용도 사용 위치 특징
= 대입 또는 비교 SET, UPDATE, WHERE 비교와 대입을 겸함
:= 대입 전용 SET, SELECT 항상 대입. 혼동 방지에 유리

6. 요약 정리

  • =: 대입과 비교 모두 가능한 연산자
  • UPDATE, SET에서는 대입
    • WHERE, SELECT에서는 비교로도 해석
  • :=: 대입 전용 연산자
  • 항상 값을 변수에 저장할 때 사용
    • 명확하고 안전한 대입 연산이 필요할 때 유용
  • 변수는 @로 시작, 세션 내에서만 유지

  • SELECT 문 내 변수에 값 대입:= 사용 권장

질문 정리

  1. =:= 중 어떤 걸 사용해야 하나요?
    • 비교가 아니라 대입만 하려는 경우에는 := 사용이 안전합니다.
  2. 변수는 항상 선언해야 하나요?
    • SET @변수이름 = 값;처럼 선언과 대입을 동시에 수행하면 됩니다.
  3. 변수는 전역으로 사용되나요?
    • 아니요. 변수는 세션 단위로 유효합니다.
  4. SELECT 문에서 변수 대입이 가능한가요?
    • 네. SELECT @var := 필드명 FROM 테이블;로 할당할 수 있습니다.
  5. :=을 WHERE 조건절에 사용할 수 있나요?
    • 권장되지 않습니다. 비교는 =를, 대입은 :=를 사용하세요.

카테고리:

업데이트:

댓글남기기