ホームページ > データベース > mysql チュートリアル > MySQL での INT(1) と TINYINT(1) の使用には違いがありますか?

MySQL での INT(1) と TINYINT(1) の使用には違いがありますか?

PHPz
リリース: 2023-08-30 08:13:08
転載
875 人が閲覧しました

在 MySQL 中使用 INT(1) 与 TINYINT(1) 有区别吗?

括弧内で使用されている数字 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 サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート