>  기사  >  데이터 베이스  >  mysql의 숫자 유형은 무엇입니까?

mysql의 숫자 유형은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-10-13 17:43:3414297검색

mysql의 숫자 유형은 INT 유형, TINYINT 유형, SMALLINT 유형, MEDIUMINT 유형, BIGINT 유형, FLOAT 유형, DOUBLE 유형 및 DECIMAL 유형입니다.

mysql의 숫자 유형은 무엇입니까?

(추천 튜토리얼: mysql 동영상 튜토리얼)

MySQL의 숫자형

1. MySQL 정수형

숫자형은 숫자형 데이터라고도 하며 숫자형 데이터형은 주로 숫자를 저장하는데 사용됩니다.

MySQL은 다양한 숫자 데이터 유형을 제공합니다. 다양한 데이터 유형은 저장할 수 있는 값 범위가 클수록 필요한 저장 공간도 커집니다.

MySQL에서 제공하는 주요 정수 유형은 TINYINT, SMALLINT, MEDIUMINT, INT 및 BIGINT이며 AUTO_INCREMENT 자동 증가 제약 조건을 해당 속성 필드에 추가할 수 있습니다. 다음 표에는 MySQL의 숫자 유형이 나열되어 있습니다.

mysql의 숫자 유형은 무엇입니까?

위 표에서 볼 수 있듯이 정수 유형에 따라 저장하는 데 필요한 바이트 수가 다릅니다. TINYINT 유형이 가장 작은 바이트 수를 차지하고 BIGINT 유형이 가장 많은 바이트를 차지합니다. 유형이 많을수록 표현할 수 있는 값의 범위가 커집니다.

각 데이터 유형의 값 범위는 차지하는 바이트 수를 기준으로 확인할 수 있습니다. 예를 들어, TINYINT는 저장하는 데 1바이트(8비트)가 필요하며 TINYINT 부호 없는 숫자의 최대값은 28-1, 즉 255입니다. TINYINT 부호 있는 숫자의 최대값은 27-1, 즉 127입니다. 다른 유형의 정수 값 범위에 대한 계산 방법은 다음 표와 같습니다.

mysql의 숫자 유형은 무엇입니까?

팁: 데이터 유형의 표시 너비와 값 범위는 관련이 없습니다. 표시 너비는 MySQL이 표시할 수 있는 최대 자릿수만 지정합니다. 자릿수가 지정된 너비보다 작으면 공백으로 채워집니다. 표시 너비보다 큰 값을 삽입하는 경우 해당 유형의 정수 값 범위를 초과하지 않는 한 값을 삽입하여 표시할 수 있습니다. 예를 들어, 연도 필드는 19999에 삽입됩니다. SELECT를 사용하여 열 값을 쿼리하면 MySQL은 4자리 값 대신 5자리로 완전한 19999를 표시합니다.

다른 정수 데이터 유형도 테이블 구조를 정의할 때 필요한 표시 너비를 지정할 수 있습니다. 지정하지 않으면 시스템에서 각 유형에 대한 기본 너비 값을 지정합니다.

다양한 정수 유형은 서로 다른 값 범위를 가지며 서로 다른 저장 공간을 필요로 하므로 실제 요구 사항에 따라 가장 적합한 유형을 선택해야 합니다. 이렇게 하면 쿼리 효율성이 향상되고 저장 공간이 절약됩니다.

2. mysql 십진수 유형

MySQL은 소수점을 표현하기 위해 부동 소수점 수와 고정 소수점 수를 사용합니다.

단정밀도 부동 소수점 숫자(FLOAT)와 배정밀도 부동 소수점 숫자(DOUBLE)의 두 가지 부동 소수점 유형이 있으며, 고정 소수점 유형은 DECIMAL 하나만 있습니다.

부동 소수점 유형과 고정 소수점 유형은 모두 (M, D)로 표시할 수 있습니다. 여기서 M은 정밀도라고 하며 전체 자릿수를 나타냅니다. D는 소수 자릿수를 나타내는 스케일이라고 합니다.

부동 소수점 숫자 유형의 값 범위는 M(1~255) 및 D(1~30, M-2보다 클 수 없음)이며, 이는 각각 표시 너비와 소수 자릿수를 나타냅니다. M과 D는 FLOAT 및 DOUBLE에서 선택 사항이며 FLOAT 및 DOUBLE 유형은 하드웨어에서 지원하는 최대 정밀도로 저장됩니다. DECIMAL의 기본 D 값은 0이고 M 값은 10입니다.

다음 표에는 MySQL의 십진수 유형 및 저장 요구 사항이 나열되어 있습니다.

mysql의 숫자 유형은 무엇입니까?

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

위 표에서 볼 수 있듯이 DECIMAL의 저장 공간은 고정되어 있지 않고 정밀도 값 M에 의해 결정되며 M+2바이트를 차지합니다.

FLOAT 유형의 값 범위는 다음과 같습니다.

  • 부호화된 값 범위: -3.402823466E+38~-1.175494351E-38.

  • 부호 없는 값 범위: 0 및 -1.175494351E-38~-3.402823466E+38.

DOUBLE 유형의 값 범위는 다음과 같습니다.

  • 부호화된 값 범위: -1.7976931348623157E+308~-2.2250738585072014E-308.

  • 부호 없는 값 범위: 0 및 -2.2250738585072014E-308~-1.7976931348623157E+308.

팁: 고정 소수점 유형이든 부동 소수점 유형이든 사용자가 지정한 정밀도가 정밀도 범위를 초과하는 경우 반올림 처리됩니다.

FLOAT 및 DOUBLE은 정밀도가 지정되지 않은 경우 기본값은 (10, 0)입니다.

고정 소수점 숫자에 비해 부동 소수점 숫자의 장점은 길이가 일정할 때 더 큰 범위를 나타낼 수 있다는 것입니다. 단점은 정확성 문제를 일으킬 수 있다는 것입니다.

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

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

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