括弧内で使用されている数字 1 は、幅の表示のみに使用されます。 INT(1) と TINYINT(1) はストレージには影響しません。
TINYINT は 1 バイトを占有し、その範囲は -128 ~ 127 ですが、int は 4 バイトを占有し、その範囲は -2147483648 ~ 2147483647です。
幅 Show を理解するために、テーブルを作成しましょう-
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 が 0 で埋められて 1 より大きくなると理解できます。幅ゼロパディングの概念を理解するために、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;
次は、さまざまな幅とゼロ パディングを示す出力です。
+-------------+---------------+ | Number1 | Number | +-------------+---------------+ | 00000012345 | 0000000006789 | | 00000000003 | 0000000000002 | | 00000000012 | 0000000000089 | | 00000000123 | 0000000006789 | | 00000001234 | 0000000006789 | +-------------+---------------+ 5 rows in set (0.00 sec)
以上がMySQL での INT(1) と TINYINT(1) の使用には違いがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。