테이블을 생성할 때 INT() 괄호 안에 숫자를 넣어서 만들었다.
나는 괄호 안의 숫자가 사용할 수 있는 INT 형 범위라고 생각했다.
INT(1)이라면, 0~1 아니면 1의 자리 숫자의 INT 형들..
하지만 INT(1)로 생성한 값안에 100도 들어가는 것을 보았다.
그럼 괄호안의 숫자는 무슨 의미인가?
https://dev.mysql.com/doc/refman/8.0/en/numeric-types.html
MySQL :: MySQL 8.0 Reference Manual :: 11.1 Numeric Data Types
MySQL supports all standard SQL numeric data types. These types include the exact numeric data types (INTEGER, SMALLINT, DECIMAL, and NUMERIC), as well as the approximate numeric data types (FLOAT, REAL, and DOUBLE PRECISION). The keyword INT is a synonym
dev.mysql.com
INT의 괄호는 보여지는 숫자의 개수의 제약을 의미하는 것이 아니다.
INT의 괄호 옵션은 ZEROFILL을 위한 것이다.
대부분의 숫자형 데이터 타입은 옵션으로 ZeroFill이라는 것을 가지게 되는데,
화면에 숫자를 표시할 때 숫자 왼쪽에 0을 붙이라는 뜻이다.
즉, INT(5) ZeroFill이라고 정의된 필드에서 저장된 값 3을 불러온다면, 00003과 같이 표시된다.
즉, INT의 괄호 옵션 기능은 ZeroFill에서 0이 채워지게 되는 개수이고,
실제 저장공간 및 입력 가능 한계는 동일하다는 의미이다!
NT(1), INT(5), INT(9), INT(11)에 들어가는 값은 동일하며,
INT(1) ZEROFILL, INT(5) ZEROFILL, INT(9) ZEROFILL, INT(11) ZEROFILL 에서만,
0이 들어가는 개수에 차이가 있음을 볼 수 있다.
'Backend > JavaScript,NodeJS, Express' 카테고리의 다른 글
[JavaScript] 기본 개념 정리 (호이스팅, 비동기 구현 방식) (0) | 2022.03.19 |
---|---|
s3로 이미지 저장하기 (0) | 2022.01.09 |
[AWS] EC2와 RDS로 서버 배포하기 (Express, MySQL) (1) | 2021.09.13 |
[AWS] EC2 생성하기 (ssh 이용해 터미널에서 접속하기) (0) | 2021.08.18 |
기본 SQL 문 정리 (0) | 2021.08.10 |