Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 unsigned smallint(6)의 최대값은 얼마입니까?

<시간/>

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)