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

MySQL에서 문자열(VARCHAR)을 DOUBLE로 변환하는 방법

MySQL에서 문자열(VARCHAR)을 DOUBLE로 변환하기

MySQL에서는 VARCHAR 타입으로 저장된 숫자 형태의 문자열을 간단한 산술 연산만으로 double(실수) 타입으로 변환할 수 있습니다. 이 글에서는 실제 예제를 통해 변환 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable731 (Value varchar(100));
Query OK, 0 rows affected (0.50 sec)

2. 데이터 삽입

INSERT 명령어를 사용하여 테이블에 숫자 형태의 문자열 데이터를 입력합니다.

mysql> insert into DemoTable731 values('4.50');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable731 values('7.83');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable731 values('8.91');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable731 values('560.34');
Query OK, 1 row affected (0.21 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회합니다.

mysql> select *from DemoTable731;

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

+--------+
| Value  |
+--------+
| 4.50   |
| 7.83   |
| 8.91   |
| 560.34 |
+--------+
4 rows in set (0.00 sec)

위 출력에서 알 수 있듯이, 현재 모든 값은 아직 문자열(VARCHAR) 상태로 저장되어 있습니다.

4. 문자열을 DOUBLE로 변환하는 쿼리

문자열을 double로 변환하려면 값에 +0.0을 더해주기만 하면 됩니다. MySQL은 산술 연산 과정에서 문자열을 자동으로 숫자로 암시적 형변환(implicit conversion)하기 때문입니다.

mysql> select Value+0.0 AS demo from DemoTable731;

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

+-----------+
| demo      |
+-----------+
| 4.5       |
| 7.83      |
| 8.91      |
| 560.34    |
+-----------+
4 rows in set (0.28 sec)

출력 결과를 보면 '4.50'이 4.5로 변환된 것을 확인할 수 있습니다. 이는 문자열이 double 타입의 숫자로 성공적으로 변환되었음을 의미합니다.

참고: CAST / CONVERT 함수를 활용한 명시적 변환

암시적 변환 대신 명시적인 형변환을 선호한다면 CAST 함수를 사용할 수도 있습니다. MySQL 8.0.17 이상 버전에서는 다음과 같이 작성합니다.

mysql> select CAST(Value AS DOUBLE) AS demo from DemoTable731;

그 이전 버전에서는 DECIMAL 타입으로 변환하는 방식을 사용하는 것이 안전합니다.

mysql> select CAST(Value AS DECIMAL(10,2)) AS demo from DemoTable731;

두 방식 모두 동일한 결과를 반환하지만, 가장 간단하고 널리 사용되는 방법은 Value + 0.0처럼 산술 연산을 활용하는 것입니다.