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

MySQL에서 INT(1) 대 TINYINT(1) 사용에 차이가 있습니까?

<시간/>

괄호 안의 숫자 1은 너비 표시 전용입니다. INT(1) 및 TINYINT(1)는 스토리지에 영향을 미치지 않습니다.

TINYINT는 1바이트를 사용합니다. 즉, int는 4바이트를 사용하는 반면 범위는 -128에서 +127까지입니다. 범위는 -2147483648 ~ +2147483647

입니다.

너비 표시를 이해하기 위해 테이블을 만들어 보겠습니다 -

mysql> create table intAndTinyint
   −> (
   −> FirstNumber int(1) zerofill,
   −> SecondNumber tinyint(1) zerofill
   −> );
Query OK, 0 rows affected (0.52 sec)

이제 테이블에 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> insert into intAndTinyint values(1,1);
Query OK, 1 row affected (0.32 sec)

mysql> insert into intAndTinyint values(12,12);
Query OK, 1 row affected (0.26 sec)

mysql> insert into intAndTinyint values(123,123);
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from intAndTinyint;

다음은 출력입니다 -

+-------------+--------------+
| FirstNumber | SecondNumber |
+-------------+--------------+
|           1 |            1 |
|          12 |           12 |
|         123 |          123 |
+-------------+--------------+
3 rows in set (0.00 sec)

괄호의 숫자 1이 zerofill을 사용하여 1 이상으로 증가할 때 이것을 이해하게 될 것입니다. 너비에 대한 0 채우기 개념을 이해하기 위해 INT에 대해서만 예를 살펴보겠습니다.

테이블을 만듭니다. 다음은 테이블을 생성하는 쿼리입니다 -

mysql> create table intVsIntAnyThingDemo
   −> (
   −> Number1 int(11) unsigned zerofill,
   −> Number int(13) unsigned zerofill
   −> );
Query OK, 0 rows affected (1.17 sec)

이제 insert 명령을 사용하여 테이블에 레코드를 삽입할 수 있습니다. 여기에서는 INT에 대해 다른 너비를 설정했습니다. 쿼리는 다음과 같습니다 -

mysql> insert into intVsIntAnyThingDemo values(12345,6789);
Query OK, 1 row affected (0.44 sec)

mysql> insert into intVsIntAnyThingDemo values(3,2);
Query OK, 1 row affected (0.20 sec)

mysql> insert into intVsIntAnyThingDemo values(12,89);
Query OK, 1 row affected (0.15 sec)

mysql> insert into intVsIntAnyThingDemo values(123,6789);
Query OK, 1 row affected (0.17 sec)

mysql> insert into intVsIntAnyThingDemo values(1234,6789);
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from intVsIntAnyThingDemo;

다음은 다른 너비와 0 채우기를 표시하는 출력입니다.

+-------------+---------------+
| Number1     | Number        |
+-------------+---------------+
| 00000012345 | 0000000006789 |
| 00000000003 | 0000000000002 |
| 00000000012 | 0000000000089 |
| 00000000123 | 0000000006789 |
| 00000001234 | 0000000006789 |
+-------------+---------------+
5 rows in set (0.00 sec)