Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 값이 할당되지 않은 사용자 변수를 참조하면 어떻게 될까?

값이 할당되지 않은 MySQL 사용자 변수의 반환값

MySQL에서 명시적으로 값을 할당하지 않은 사용자 변수를 참조하면 NULL이 반환됩니다. 즉, 해당 변수의 값은 NULL로 처리됩니다.

사용자 변수는 SET 문이나 SELECT ... := 구문을 통해 값을 할당할 수 있으며, 한 번도 값이 대입된 적이 없는 변수는 초기화되지 않은 상태로 존재하게 됩니다. 이러한 변수를 조회하면 에러가 발생하지 않고 조용히 NULL을 돌려주기 때문에, 쿼리 작성 시 주의가 필요합니다.

예제

mysql> Select @X, @Y, @Z, @S, @G;
+------+-------+----------+------+------+
| @X   | @Y    | @Z       | @S   | @G   |
+------+-------+----------+------+------+
| Ram  | Shyam | Students | 5000 | NULL |
+------+-------+----------+------+------+
1 row in set (0.00 sec)

결과 분석

위 결과 집합에서 볼 수 있듯이, @X, @Y, @Z, @S에는 각각 'Ram', 'Shyam', 'Students', 5000이라는 값이 명시적으로 할당되어 있으므로 해당 값들이 그대로 반환됩니다.

반면 @G 변수에는 어떠한 값도 할당된 적이 없습니다. 따라서 이 변수를 참조하면 MySQL은 NULL을 반환하는데, 이는 해당 변수가 실제로 NULL 값을 가지고 있기 때문입니다.

실무 팁

NULL 반환은 오류로 이어지지 않지만, 계산식이나 조건절에서 의도치 않은 결과를 초래할 수 있습니다. 예를 들어 NULL과의 산술 연산 결과는 항상 NULL이 되므로, 사용자 변수를 사용하기 전에는 반드시 값을 초기화하거나 IFNULL(), COALESCE() 같은 함수로 NULL 여부를 확인하는 것이 안전합니다.