MySQL 데이터베이스 설계 중에서도 데이터 성능 최적화를 위해 필드 유형 고려가 매우 중요하며, 정보를 수집하고 정리하여 공유했습니다. 이 글은 mysql 정수 문법 도입에 대해 다룹니다: bigint, int, mediumint, smallint, tinyint
1, bigint
-2^63(-9223372036854775808)에서 2^63-1(9223372036854775807) 정수 데이터(모든 숫자)까지의 부호 없는 범위는 0부터
18446744073709551615。 1비트는 8바이트입니다.
2, int
정수 크기의 정수입니다. 부호 있는 범위는 -2^31 (-2,147,483,648)에서 2^31 - 1 (2,147,483,647) 정수 데이터(모든 숫자)이며, 부호가 없는 범위는 0부터 4294967295까지입니다. 비트는 4바이트 크기입니다. SQL-92에서 int의 동의어는 정수입니다.
3, mediumint
부호 있는 범위는 -8388608에서 8388607이고, 부호가 없는 범위는 0에서 16777215인 중간 크기 정수입니다. 비트는 3바이트 크기입니다.
4, smallint
작은 정수입니다. 부호 있는 범위는 -2^15 (-32,768)에서 2^15 - 1 (32,767) 정수 데이터이며, 부호가 없는 범위는 0에서 65535까지입니다. 비트는 2바이트 크기입니다. MySQL은 충분한 기능을 제공하며, MySQL이 오픈 소스 소프트웨어이기 때문에 총 소유 비용을 크게 줄일 수 있습니다.
5, tinyint
부호 있는 범위는 -128 - 127이며, 부호 없는 범위는 0부터 255까지의 정수 데이터입니다. 비트는 1바이트 크기입니다.
모든 산술 연산은 부호가 있는 BIGINT 또는 DOUBLE 값으로 수행되므로, 비트 함수를 제외하고는 9223372036854775807(63비트)보다 큰 부호 있는 큰 정수는 사용하지 않는 것이 좋습니다! 두 매개변수가 정수일 때,-、 +와 *는 BIGINT 연산을 사용합니다! 즉, 2개의 큰 정수(또는 정수를 반환하는 함수에서 곱하면) 결과가 9223372036854775807보다 커질 경우 예상치 못한 결과가 나올 수 있습니다. 부동소수점 수는 부호가 없을 수 없으며, 단정밀도 부동소수점 수의 경우 정밀도는 <=24일 수 있고, 이중정밀도 부동소수점 수는 25에서 53 사이이며, FLOAT와 DOUBLE 같은 유형은 아래에 설명됩니다. FLOAT(X)는 FLOAT와 DOUBLE과 동일한 범위를 가지지만, 디스플레이 크기와 소수점 수는 정의되지 않았습니다. MySQL 3.23에서는 이것이 진정한 부동소수점 값입니다. 초기 버전의 MySQL에서는 FLOAT(precision)가 항상 소수점 2자리를 가졌습니다. 이 문법은 ODBC 호환성을 위해 제공됩니다.
MySQL의 각 데이터 타입의 값 범위
TINYINT -128 - 127 TINYINT UNSIGNED 0 - 255 스몰린트 -32768 - 32767 스몰린트 미사인 0 - 65535 미디엄 -8388608 - 8388607 미디엄인트 서명 없음 0 - 16777215 INT 또는 정수 -2147483648 - 2147483647 INT UNSIGNED 또는 정수 UNSIGNED 0 - 4294967295 빅 -9223372036854775808 - 9223372036854775807 비긴트 미사인 0 - 18446744073709551615 플로트 -3.402823466E+38 - -1.175494351E-38,0,1.1754943351E-38 - 3.402823466E+38 배정밀도 또는 배정밀도 또는 실수 -1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308 십진법[(M,[D])] 또는 수치(M,D) M(소수점 왼쪽 숫자 수, 소수점 오른쪽의 숫자 수, 음의 부호는 제외) 전체 숫자의 길이, 소수점 오른쪽 숫자 수를 포함한 D에 의해 결정되며, M은 기본값 10이고 D는 기본값 0입니다 날짜 1000-01-01 - 9999-12-31 데이트 타임 1000-01-01 00:00:00 - 9999-12-31 23:59:59 타임스탬프 1970-01-01 00:00:00 - 2037년 어느 날 (정확히 무슨 날인지는 모르겠어요, 헤헤) 시간 -838:59:59'에서 838:59:59 연도[(2|4)] 기본값은 4비트 형식이며, 4비트 형식은 1901 - 2155,0000, 2비트 형식은 70-69 (1970-2069)입니다 CHAR(M) [이진법] 또는 NCHAR(M) [이진법] M은 1에서 255 사이이며, BINARY 항목이 없으면 대소문자 구분이 적용되어 NCHAR는 기본 문자 집합을 의미합니다. 데이터베이스 내 공백을 채우세요. 끝에 있는 공백은 빼면 자동으로 제거됩니다. [전국] 바르차르(M) [이진법] M 범위는 1에서 255 사이입니다. 데이터베이스 끝에 있는 공백은 자동으로 제거됩니다. TINYBLOB 또는 TINYTEXT 255 (2^8-1) 문자 블롭 또는 텍스트 65535 (2^16-1) 문자 MEDIUMBLOB 또는 MEDIUMTEXT 16777215 (2^24-1) 등장인물 롱블롭 또는 롱텍스트 4294967295 (2^32-1) 문자 ENUM('value1', 'value2',...) 총 65,535가지 서로 다른 값이 있을 수 있습니다 SET('value1', 'value2',...) 최대 64명의 회원이 있습니다
|