MySQL에서 unsigned SMALLINT(6)의 최대값은 65535이다. 숫자 6은 실제 범위에 영향을 미치지 않는다. 명령줄에 너비를 표시하는 데만 사용할 수 있습니다.
서명된 최소값은
-32768
부호 없는 최대값은
65535
서명된 최대값은
32767
이것을 zerofill로 이해하고 다음 쿼리를 사용하여 테이블을 생성해 봅시다.
mysql> create table smallIntDemo -> ( -> FirstNumber smallint(6) zerofill -> ); Query OK, 0 rows affected (1.95 sec)
이제 insert 명령을 사용하여 테이블에 레코드를 삽입할 수 있습니다. 범위 65535를 넘어 삽입할 때마다 최대값이므로 테이블에 삽입되지 않습니다. 쿼리는 최대 범위보다 작은 값을 삽입하면 다음과 같습니다.
mysql> insert into smallIntDemo values(2); Query OK, 1 row affected (0.21 sec) mysql> insert into smallIntDemo values(23); Query OK, 1 row affected (0.21 sec) mysql> insert into smallIntDemo values(234); Query OK, 1 row affected (0.17 sec) mysql> insert into smallIntDemo values(2345); Query OK, 1 row affected (0.15 sec) mysql> insert into smallIntDemo values(23456); Query OK, 1 row affected (0.48 sec)
이제 최대값을 확장하기 때문에 테이블에 삽입되지 않는 일부 레코드를 살펴보겠습니다.
mysql> insert into smallIntDemo values(234567); ERROR 1264 (22003): Out of range value for column 'FirstNumber' at row 1 mysql> insert into smallIntDemo values(111111); ERROR 1264 (22003): Out of range value for column 'FirstNumber' at row 1
이제 select 문을 사용하여 테이블의 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> select *from smallIntDemo;
다음은 SMALLINT(6)에서 너비, 즉 숫자의 사용을 표시하는 출력입니다. 너비는 6입니다.
+-------------+ | FirstNumber | +-------------+ | 000002 | | 000023 | | 000234 | | 002345 | | 023456 | +-------------+ 5 rows in set (0.00 sec)