괄호 안의 숫자는 정말 무엇을 의미합니까?
저는 항상 괄호 안의 숫자가 필드 길이를 나타낸다고 생각했습니다.
하지만 항상 그렇지는 않다는 것을 알고 있습니다.MySQL 문제인가요?필드를 9자로 설정하면 9자 이상의 값을 추가할 수 있지만 처음 9자만 저장된다고 합니다.
예:
CREATE TABLE `person` (
id INT,
age INT(2)
);
만약 그렇다면, 제가 같은 것을 선택해야 하지 않을까요?TINYINT
에 INT
몇 년 동안?
INT(2)
최소 디스플레이 너비가 2인 INT를 생성합니다.
MySQL은 형식에 대한 기본 키워드 뒤에 괄호 안에 정수 데이터 형식의 표시 너비를 선택적으로 지정하는 확장을 지원합니다.예를 들어 INT(4)는 표시 너비가 4자리인 INT를 지정합니다.이 선택적 표시 너비는 응용 프로그램에서 열에 지정된 너비보다 작은 너비를 가진 정수 값을 공백으로 왼쪽 패딩하여 표시하는 데 사용할 수 있습니다.즉, 이 너비는 결과 집합과 함께 반환되는 메타데이터에 있습니다.사용 여부는 신청에 달려 있습니다.)
표시 너비는 열에 저장할 수 있는 값의 범위를 제한하지 않습니다.또한 열 표시 너비보다 큰 값이 올바르게 표시되는 것을 방지하지도 않습니다.예를 들어, SMALLINT(3)로 지정된 열은 일반적으로 SMALLINT 범위가 -32768 - 32767이며, 세 자리 이상의 숫자를 사용하여 허용되는 범위를 벗어난 값이 전체로 표시됩니다.
필드에 저장할 수 있는 값의 범위에는 영향을 주지 않으며 저장에 사용되는 바이트 수에도 영향을 주지 않습니다.응용 프로그램에 대한 권장 사항일 뿐입니다. 그렇지 않은 경우, 가치를 표시하는 방법입니다.ZEROFILL
사용됩니다(링크 페이지 참조).
없는 서명지않은.TINYINT
(0...255)도 마찬가지입니다. 애플리케이션의 수명 동안 저온 보존이 크게 진전되지 않는 한 말입니다.
vchar와 같은 필드 유형의 경우에는 해당되지만 숫자의 경우에는 숫자를 나타내는 데 사용되는 바이트 수를 나타냅니다.2바이트의 정수는 2^16 - 1(바이트당 8비트이므로 총 16비트)의 숫자를 유지할 수 있음을 의미합니다.나이라면 2바이트로 안전해야 할 것 같아요 ;)
언급URL : https://stackoverflow.com/questions/4055564/what-does-the-number-in-parenthesis-really-mean
'programing' 카테고리의 다른 글
Ajax 처리에 "잘못된 JSON 기본값"이(가) 있습니다. (0) | 2023.09.01 |
---|---|
IIS URL 다시 쓰기 vs URL 라우팅 (0) | 2023.09.01 |
클릭하면 브라우저에서 이미지 파일 다운로드 (0) | 2023.08.27 |
오라클 데이터베이스의 고유한 대/소문자 구분 안 함 제약 조건 (0) | 2023.08.27 |
ASP.NET MVC - 느린 초기 로드 (0) | 2023.08.27 |