Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

PRICE 필드를 데이터베이스에 int 또는 float로 저장해야 합니까?

<시간/>

데이터베이스에 PRICE 필드를 int 또는 float로 저장할 필요가 없습니다. 이를 위해 DECIMAL()을 설정할 수 있습니다..

대부분의 경우 정수는 부동 소수점 수를 나타내는 데 사용할 수 있으며 이러한 정수는 내부적으로 DECIMAL() 데이터 유형으로 캐스트됩니다. 따라서 PRICE 필드가 있는 경우 항상 DECIMAL() 데이터 유형을 사용하십시오. 구문은 다음과 같습니다 -

십진수(M,D);

여기서 M은 'TotalNumberOfDigit'을, D는 'Number OfDigitAfterDecimalPoint'를 나타냅니다.

위의 개념을 이해하기 위해 DECIMAL 데이터 유형으로 PRICE 필드가 있는 테이블을 생성해 보겠습니다. 쿼리는 다음과 같습니다 -

mysql> 테이블 생성 Decimal_Demo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> PRICE DECIMAL(18,2), -> PRIMARY KEY(Id) -> );Query OK, 영향을 받는 행 0개(1.63초) 

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into Decimal_Demo(PRICE) 값(99999999999999.99);Query OK, 1행 영향(0.11초)mysql> Insert into Decimal_Demo(PRICE) values(100000000000000.99);Query OK, 0.36개 행 영향 /사전> 

이제 select 문을 사용하여 테이블의 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *Decimal_Demo;

다음은 출력입니다 -

+----+-------------------+| 아이디 | 가격 |+----+-------------------+| 1 | 99999999999999.99 || 2 | 10000000000000.99 |+-+----+세트에 2행(0.00초)