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

MySQL에서 변수의 데이터 타입을 확인하고 CAST로 변환하는 방법

MySQL에서는 변수의 타입을 직접 조회할 수 없습니다

MySQL에서는 다른 프로그래밍 언어와 달리 변수의 데이터 타입을 직접 조회하는 기능을 제공하지 않습니다. 대신 CAST 연산자를 사용하면 변수를 원하는 다른 타입으로 변환할 수 있으며, 이 과정을 통해 실질적으로 타입 정보를 다룰 수 있습니다.

먼저 변수를 선언하고 값을 할당하는 기본 문법은 다음과 같습니다.

SET @yourVariableName := 'anyValue';

이후 CAST 연산자를 사용해 원하는 타입으로 변환합니다.

SELECT CAST(@yourVariableName AS SIGNED);

아래에서 두 가지 대표적인 변환 사례를 통해 실제 동작 방식을 살펴보겠습니다.

사례 1: 문자열을 숫자(UNSIGNED)로 변환

문자열 형태의 숫자를 정수 타입으로 변환하는 예시입니다. 먼저 문자열 값을 변수에 할당합니다.

mysql> set @StringToInt := '12345';
Query OK, 0 rows affected (0.00 sec)

이제 CAST 연산자를 사용해 UNSIGNED 타입으로 변환합니다.

mysql> select CAST(@StringToInt as UNSIGNED);

실행 결과는 다음과 같습니다.

+--------------------------------+
| CAST(@StringToInt as UNSIGNED) |
+--------------------------------+
| 12345                          |
+--------------------------------+
1 row in set (0.00 sec)

문자열 '12345'가 성공적으로 부호 없는 정수 12345로 변환된 것을 확인할 수 있습니다.

사례 2: 숫자(INT)를 문자(CHAR)로 변환

반대로 숫자 값을 문자열로 변환할 수도 있습니다. 아래 예시는 정수 65를 CHAR 타입으로 캐스팅하여 변수에 저장하는 코드입니다.

mysql> set @IntTochar := CAST(65 as CHAR);
Query OK, 0 rows affected (0.00 sec)

변환된 변수의 값을 조회해 보겠습니다.

mysql> select @IntTochar;

실행 결과는 다음과 같습니다.

+------------+
| @IntTochar |
+------------+
| 65         |
+------------+
1 row in set (0.00 sec)

정리

MySQL은 변수의 타입을 직접 확인하는 방법을 제공하지 않지만, CAST 연산자를 활용하면 문자열 ↔ 숫자 등 다양한 타입 간의 변환이 가능합니다. 자주 사용되는 주요 CAST 타입은 다음과 같습니다.

SIGNED: 부호 있는 정수로 변환
UNSIGNED: 부호 없는 정수로 변환
CHAR: 문자열로 변환
DECIMAL: 고정 소수점 숫자로 변환
DATETIME: 날짜 및 시간 형식으로 변환

데이터 처리 시 타입 불일치 문제를 해결하거나, 입력값을 원하는 형식으로 정규화할 때 CAST 연산자를 적극적으로 활용하시기 바랍니다.