11.2.5 수치 형 속성
MySQL에서는 정수 데이터 형식의 기본 키워드에 이어 괄호 안에 해당 유형의 표시 폭을 옵션으로 지정하는 확장을 지원하고 있습니다. 예를 들어, INT(4)
는 4 자리의 표시 폭의 INT
를 지정하고 있습니다. 이 옵션의 표시 폭은 왼쪽 공백으로 패딩하여 컬럼에 지정된 폭보다 좁은 정수 값을 표시하기 위해 응용 프로그램에서 사용되는 경우가 있습니다. (즉,이 폭은 결과 집합에 반환되는 메타 데이터에 있습니다. 이것을 사용 여부는 응용 프로그램에 따라 달라진다.)
표시 폭은 컬럼에 저장할 수없는 값의 범위를 제한하지 않습니다. 컬럼의 표시 폭보다 넓은 값이 제대로 표시되지 않을 수 없습니다. 예를 들어, SMALLINT(3)
로 지정된 컬럼은 -32768
에서 32767
의 일반 SMALLINT
범위가 3 자리가 허용 된 범위 밖의 값은 4 자리 이상을 사용하여 표시됩니다 .
옵션 (비표준) 속성 ZEROFILL
과 함께 사용하면 기본 공간 패딩 제로 바뀝니다. 예를 들어, INT(4) ZEROFILL
으로 선언 된 컬럼의 경우 5
값은 0005
으로 가져옵니다.
ZEROFILL
속성은 열이 식이나 UNION
쿼리에 포함되어있을 때는 무시됩니다.
ZEROFILL
속성을 가지는 정수 컬럼에 표시 폭보다 큰 값을 저장하면 MySQL이 일부 복잡한 결합에 임시 테이블을 생성 할 때 문제가 발생할 수 있습니다. 이러한 경우, MySQL은 컬럼의 표시 폭 내에서 데이터 값이 들어갈 것으로 간주합니다.
모든 정수형에는 옵션 (비표준) 속성 UNSIGNED
을 지정할 수 있습니다. 부호없는 형식은 컬럼에 음수가 아닌 숫자 만 허용하거나 컬럼의 상한 수치 범위를 크게 할 필요가있을 때 사용할 수 있습니다. 예를 들어, INT
컬럼이 UNSIGNED
이면 열 범위의 크기는 동일하지만 그 끝은 -2147483648
과 2147483647
에서 0
과 4294967295
로 변경됩니다.
부동 소수점과 고정 소수점도 UNSIGNED
가 될 수 있습니다. 정수형과 마찬가지로,이 속성은 음수 값을 컬럼에 저장되는 것을 방지합니다. 정수형과는 달리, 컬럼 값의 상한 범위는 바뀌지 않습니다.
숫자 컬럼에 대해서 ZEROFILL
을 지정하면, MySQL은 자동으로 그 컬럼에 UNSIGNED
속성을 추가합니다.
정수 또는 부동 소수점 데이터 형식은 추가 속성 AUTO_INCREMENT
를 지정할 수 있습니다. 인덱싱 된 AUTO_INCREMENT
컬럼에 NULL
(권장) 또는 0
값을 삽입하면 열이 다음 시퀀스 값으로 설정됩니다. 일반적으로 이것은
입니다. 여기서 value
+1value
는 현재 테이블에있는 컬럼의 최대 값입니다. AUTO_INCREMENT
시퀀스는 1
에서 시작됩니다. ( AUTO_INCREMENT
값을 생성하기 위해 NULL
을 삽입하는 경우, 컬럼을 NOT NULL
로 선언해야합니다. 컬럼을 NULL
로 선언 된 경우 NULL
을 삽입하면 NULL
이 저장됩니다.)
MySQL 5.6.9 이후에서는, AUTO_INCREMENT
컬럼의 음수 값은 지원되지 않습니다.