집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터 유형에서 DECIMAL의 사용 예에 대한 자세한 설명
INT, FLOAT, DOUBLE, CHAR, DECIMAL 등과 같은 MySQL 데이터 유형에는 모두 고유한 기능이 있습니다. 아래에서는 MySQL 데이터 유형에서 DECIMAL 유형의 기능과 사용법을 주로 소개합니다. 이 글은 MySQL 데이터 타입에서 DECIMAL의 상세한 사용 예에 대한 관련 정보를 주로 소개합니다. 이 글이 모든 사람에게 도움이 되기를 바라며, 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
일반적으로 부동 소수점 열에 할당된 값은 이 열에서 지정한 십진수로 반올림됩니다. FLOAT(8, 1) 열에 1. 2 3 4 5 6을 저장하면 결과는 1. 2입니다. FLOAT(8, 4)의 컬럼에 동일한 값이 저장되면 결과는 1입니다. 2 3 4 6.
즉, 가능한 가장 정확한 값을 얻으려면 부동 소수점 열을 충분한 자릿수로 정의해야 합니다. 천분의 일까지의 정확도를 원한다면 소수점 이하 두 자리만 포함하도록 유형을 정의하지 마세요.
MySQL3.23에서는 이러한 부동 소수점 값 처리에 예외가 있으며 FLOAT(4) 및 FLOAT(8)의 성능이 변경되었습니다. 이 두 가지 유형은 이제 해당 값이 지정된 형식으로 저장된다는 점에서 단정밀도(4바이트)와 이중 정밀도(8바이트)입니다(하드웨어 제한 사항만 적용됨).
DECIMAL 유형은 DECIMAL이 실제로 문자열로 저장되는 FLOAT 및 DECIMAL과 다릅니다. DECIMAL의 최대 가능 값 범위는 DOUBLE과 동일하지만, 유효 값 범위는 M과 D의 값에 따라 결정됩니다. M을 변경하고 D를 고정한 경우 M이 커질수록 값 범위도 커집니다. 표 2-7의 처음 세 행은 이 점을 설명합니다. M을 고정하고 D를 변경하면 D가 커질수록 값 범위는 작아집니다(그러나 정확도는 높아집니다). 표 2-7의 마지막 세 행은 이 점을 설명합니다.
주어진 DECIMAL 유형의 값 범위는 MySQL 데이터 유형의 버전에 따라 다릅니다. MySQL3.23 이전 버전에서는 DECIMAL(M, D) 열의 각 값이 M 바이트를 차지하고, 부호(필요한 경우)와 소수점이 M 바이트에 포함됩니다. 따라서 DECIMAL(5, 2) 유형의 열은 가능한 모든 5자 값을 포함하므로 -9.99에서 9 9 9 범위의 값을 갖습니다.
MySQL3.23과 마찬가지로 DECIMAL 값은 ANSI 사양에 따라 처리됩니다. ANSI 사양에서는 DECIMAL(M, D)이 M자리와 D자리의 모든 값을 나타낼 수 있어야 한다고 규정하고 있습니다.
예를 들어 DECIMAL(5, 2)는 -999.99부터 999.99까지의 모든 값을 표현할 수 있어야 합니다. 그리고 부호와 소수점을 저장해야 하므로 MySQL3.23부터 DECIMAL 값은 M + 2바이트를 차지한다. DECIMAL(5, 2)의 경우 "가장 긴" 값(-9 9 9 . 9 9)에는 7바이트가 필요합니다.
양수 값 범위의 한쪽 끝에서는 더하기 기호가 필요하지 않으므로 MySQL 데이터 유형은 이를 사용하여 ANSI 사양에서 요구하는 값 범위 이상으로 값 범위를 확장합니다. 예를 들어 DECIMAL(5, 2)의 최대값은 7바이트이므로 9 9 9 9 입니다.
간단히 말하면, MySQL3.23 이후 버전에서는 DECIMAL(M, D)의 값 범위가 이전 버전의 DECIMAL(M + 2, D) 값 범위와 동일합니다. 모든 버전의 MySQL 데이터 유형에서 DECIMAL 열의 D가 0이면 소수점이 저장되지 않습니다. 그 결과 소수점을 저장하는 데 사용된 바이트를 다른 숫자를 저장하는 데 사용할 수 있으므로 열의 값 범위가 확장됩니다.
관련 권장사항:
mysql에서 통화 값을 식별하려면 십진수를 사용해야 합니다
위 내용은 MySQL 데이터 유형에서 DECIMAL의 사용 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!