MySQL은 구조화된 데이터를 저장하는 데 자주 사용되는 인기 있는 관계형 데이터베이스 관리 시스템입니다. MySQL에서 숫자 유형은 자주 사용되는 데이터 유형 중 하나이지만, 서로 다른 시스템과 데이터 소스 간에 존재할 수 있는 형식 차이로 인해 숫자 유형을 변환할 때 몇 가지 문제가 발생할 수 있습니다. 이 기사에서는 MySQL에서 숫자 유형을 변환하는 방법을 소개합니다.
먼저, MySQL의 일반적인 숫자 데이터 유형과 관련 속성을 이해해야 합니다. 다음 표에는 MySQL에서 지원되는 숫자 데이터 유형이 나열되어 있습니다.
Data type | Description |
---|---|
TINYINT | 1바이트 부호 있는 정수 |
SMALLINT | 2바이트 부호 있는 정수 |
MEDIUMINT | 3바이트 부호 있는 정수 |
INT | 4바이트 부호 있는 정수 |
BIGINT | 8바이트 부호 있는 정수 |
FLOAT | 단일 정밀도 부동 소수점 숫자 |
DOUBLE | 이중 정밀도 부동 소수점 숫자 |
DECIMAL | 고정 정밀도 소수점 |
위 표에서 정수형은 각각 1, 2, 3, 4, 8바이트를 사용하여 데이터를 저장하고, 부동소수점 유형은 각각 4, 8바이트를 사용하여 데이터를 저장하며, DECIMAL 유형은 4~65바이트를 사용합니다. 데이터를 저장하는 것과 동일한 저장 공간, 구체적인 저장 공간은 열 정의에 설정된 소수점 수에 따라 다릅니다.
다음으로 MySQL의 숫자 유형 변환에 대한 일반적인 시나리오에 대해 논의하겠습니다.
대부분의 경우 데이터베이스에 저장된 문자열을 숫자 유형으로 변환해야 합니다. 사용자가 문자열을 숫자로 입력한 후 계산 등을 수행합니다. MySQL에서는 CAST, CONVERT 또는 연산자를 사용하여 문자열을 숫자 유형으로 변환할 수 있습니다.
먼저 CAST 기능의 사용법을 살펴보겠습니다. CAST 함수는 두 개의 매개변수를 허용합니다. 첫 번째 매개변수는 유형 변환이 필요한 값이고, 두 번째 매개변수는 변환이 필요한 대상 데이터 유형입니다. 예를 들어 문자열 '123'을 INT 유형으로 변환하려면 다음 명령문을 사용할 수 있습니다.
SELECT CAST('123' AS INT);
문자열을 대상 데이터 유형으로 변환할 수 없는 경우 NULL 값이 반환됩니다.
다음으로 CONVERT 함수의 사용법을 살펴보겠습니다. CONVERT 함수는 두 개의 매개변수도 허용합니다. 첫 번째 매개변수는 유형 변환이 필요한 값이고, 두 번째 매개변수는 변환이 필요한 대상 데이터 유형입니다. 예를 들어 문자열 '123'을 DOUBLE 타입으로 변환하려면 다음과 같은 구문을 사용하면 됩니다.
SELECT CONVERT('123', DOUBLE);
여기서는 대상 데이터 타입을 따옴표로 묶지 않고 SQL 문에 직접 작성합니다. 문자열을 대상 데이터 유형으로 변환할 수 없으면 0이 반환됩니다.
마지막으로 연산자를 사용한 유형 변환 사용법을 살펴보겠습니다. 문자열을 숫자 유형으로 변환할 때 문자열과 데이터 유형을 추가할 수 있습니다. 예:
SELECT '123' + 0;
여기서 문자열 '123'을 숫자 0에 추가하면 MySQL은 자동으로 문자열 '123'을 다음으로 변환합니다. 숫자 유형 123.
많은 경우, 저장 프로시저나 함수에 숫자를 매개변수로 전달할 때와 같이 숫자 유형을 문자열 유형으로 변환해야 합니다. MySQL에서는 CAST 또는 CONVERT 함수를 사용하여 숫자 유형을 문자열 유형으로 변환할 수 있습니다.
먼저 CAST 기능의 사용법을 살펴보겠습니다. CAST 함수는 두 개의 매개변수를 허용합니다. 첫 번째 매개변수는 유형 변환이 필요한 값이고, 두 번째 매개변수는 변환이 필요한 대상 데이터 유형입니다. 예를 들어 숫자 123을 문자열 유형으로 변환하려면 다음 명령문을 사용할 수 있습니다.
SELECT CAST(123 AS CHAR);
여기에서는 숫자 123을 CHAR 유형 문자열로 변환합니다.
다음으로 CONVERT 함수의 사용법을 살펴보겠습니다. CONVERT 함수는 두 개의 매개변수도 허용합니다. 첫 번째 매개변수는 유형 변환이 필요한 값이고, 두 번째 매개변수는 변환이 필요한 대상 데이터 유형입니다. 예를 들어 숫자 123을 문자열 유형으로 변환하려면 다음 명령문을 사용할 수 있습니다.
SELECT CONVERT(123, CHAR);
여기에서는 숫자 123을 CHAR 유형 문자열로 변환합니다.
데이터를 가져올 때 원본 데이터는 CSV 파일이나 Excel 파일에 저장되는 경우가 많고, 이러한 파일의 숫자 데이터는 문자열 형식으로 저장되는 경우가 많습니다. MySQL로 데이터를 가져올 때 이러한 문자열 데이터는 MySQL이 지원하는 숫자 데이터 유형으로 변환되어야 합니다.
예를 들어 MySQL의 LOAD DATA INFILE 명령을 사용하여 데이터를 가져올 때 SET 절을 사용하여 각 열의 데이터 유형을 지정할 수 있습니다. 예를 들어, 다음 데이터가 포함된 Sample.csv라는 파일이 있다고 가정해 보겠습니다.
"1001","John","Doe","30" "1002","Jane","Doe","25"
다음 명령을 사용하여 sales table이라는 MySQL 데이터베이스로 데이터를 가져올 수 있습니다.
LOAD DATA INFILE 'sample.csv' INTO TABLE sales FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (@col1, @col2, @col3, @col4) SET id = CAST(@col1 AS INT), first_name = @col2, last_name = @col3, age = CAST(@col4 AS INT) ;
여기서는 CAST 함수 Convert를 사용합니다. @col1 및 @col4를 INT 유형의 숫자로 변환하고 해당 값을 id 및 age 열에 삽입합니다. first_name과 last_name은 문자열 유형의 컬럼이므로 유형 변환을 수행할 필요가 없습니다.
물론 CAST 함수 외에도 CONVERT 함수나 operator를 사용하여 데이터를 가져올 때 숫자 유형 변환을 수행할 수도 있습니다.
요약하자면, MySQL에서 숫자 유형 변환을 수행해야 하는 경우 CAST, CONVERT 또는 operator를 사용할 수 있습니다. 데이터를 가져올 때 SET 절을 사용하여 각 열의 데이터 유형을 지정할 수도 있습니다. 이러한 방법을 익히면 숫자 유형 데이터를 보다 유연하게 처리하고 비즈니스 요구 사항에 맞게 조정할 수 있습니다.
위 내용은 MySQL에서 숫자 유형을 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!