>  기사  >  데이터 베이스  >  mysql의 금액에는 어떤 유형이 사용됩니까?

mysql의 금액에는 어떤 유형이 사용됩니까?

青灯夜游
青灯夜游원래의
2022-06-14 15:20:5716105검색

mysql에서는 금액이 "DECIMAL" 유형을 사용합니다. DECIMAL 유형은 재무 관련 문제를 위해 특별히 설계된 데이터 유형으로, 실제로 저장되는 물가, 임금, 계좌 잔고 등의 화폐 데이터에 자주 사용됩니다. 문자열 형식으로 정의할 때 정수 부분과 소수 부분의 자릿수를 구분할 수 있습니다. 구문은 "DECIMAL(M,D)"이며, 매개변수 M은 최대 숫자 수(정밀도)입니다. 매개변수 D는 소수점(스케일) 오른쪽의 자릿수입니다.

mysql의 금액에는 어떤 유형이 사용됩니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

mysql에서는 금액이 "DECIMAL" 유형을 사용합니다.

Decimal(고정 소수점 수)은 금융 관련 문제를 위해 특별히 설계된 데이터 유형으로, 데이터 범위 및 정확성 문제를 해결할 수 있습니다.

DECIMAL은 MySQL 5.1부터 도입되었으며 열 선언 구문은 DECIMAL(M,D)입니다. MySQL 5.1에서 매개변수의 값 범위는 다음과 같습니다.

  • M은 최대 숫자 수(정밀도)입니다. 범위는 1~65(이전 MySQL 버전에서는 허용 범위는 1~254)이며 M의 기본값은 10입니다.

  • D는 소수점(스케일) 오른쪽의 자릿수입니다. 범위는 0~30 이지만 M을 초과할 수 없습니다.

설명: float는 4바이트, double은 8바이트, decimail(M,D)는 M+2바이트를 차지합니다.

예를 들어 DECIMAL(5,2)의 최대값은 7바이트이므로 9 9 9 9 입니다.

DECIMAL 유형은 FLOAT 및 DOUBLE과 다릅니다. DOUBLE은 실제로 문자열 형태로 저장된다. DECIMAL의 최대 가능 값 범위는 DOUBLE과 동일하지만, 유효한 값 범위는 M과 D에 의해 결정된다. M을 변경하고 D를 고정하면 M이 커질수록 값의 범위가 커지게 됩니다.

다음을 강조하고 싶습니다: MySQL에서는 고정 소수점 숫자가 문자열 형식으로 저장됩니다. (통화, 과학 데이터 등) 정확도 요구 사항이 상대적으로 높은 경우 DECIMAL을 사용하는 것이 좋습니다. 뺄셈과 비교 연산도 문제가 발생하기 쉬우므로 부동소수점 숫자를 사용할 때는 주의가 필요하며 부동소수점 비교는 피하도록 노력해야 합니다.

MySQL DECIMAL 데이터 유형 및 화폐 데이터

우리는 가격, 급여, 계좌 잔고 등과 같은 화폐 데이터에 DECIMAL 데이터 유형을 자주 사용합니다. 통화 데이터를 처리하는 데이터베이스를 설계하는 경우 다음 구문이 적합합니다.

amount DECIMAL(19,2);

그러나 GAAP(일반적으로 인정되는 회계 원칙) 규칙을 준수하려면 반올림된 값이 $0.01 USD를 초과하지 않도록 통화 열에 소수점 이하 4자리 이상이 포함되어야 합니다. 이 경우 다음과 같이 소수점 이하 4자리의 열을 정의해야 합니다.

amount DECIMAL(19,4);

MySQL DECIMAL 데이터 유형 예

먼저 id, 설명, 비용의 세 가지 필드가 있는 materials라는 새 테이블을 만듭니다.

CREATE TABLE materials (
    id INT AUTO_INCREMENT PRIMARY KEY,
    description VARCHAR(255),
    cost DECIMAL(19 , 4 ) NOT NULL
);

두 번째로 재료 테이블에 데이터를 삽입합니다.

INSERT INTO materials(description,cost)
VALUES('Bicycle', 500.34),('Seat',10.23),('Break',5.21);

셋째, 테이블에서 데이터 자료를 쿼리합니다.

SELECT 
    *
FROM
    materials;

mysql의 금액에는 어떤 유형이 사용됩니까?

넷째, ZEROFILL 속성을 포함하도록 비용 열을 수정합니다.

ALTER TABLE materials
MODIFY cost DECIMAL(19,4) zerofill;

다섯, 재료 목록을 다시 확인해보세요.

SELECT 
    *
FROM
    materials;

mysql의 금액에는 어떤 유형이 사용됩니까?

보시다시피 출력 값에 제로 패딩이 많이 있습니다.

【관련 추천: mysql 비디오 튜토리얼

위 내용은 mysql의 금액에는 어떤 유형이 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.