ホームページ  >  記事  >  データベース  >  MySQL の int (10) と int (11) の違い

MySQL の int (10) と int (11) の違い

Guanhui
Guanhui転載
2020-05-20 13:06:023813ブラウズ

MySQL の int (10) と int (11) の違い

最近就職活動をしていて面接を受けているのですが、面接の過程で自分の欠点がたくさん露呈し、まとめにまとめていました。おそらくほとんどの面接官は、データベースの最適化、マスター/スレーブ レプリケーション、インデックス、エンジンなど、MySQL に関する質問をするでしょう。それで、私が最も印象に残っているのは、int (10) と int (11) の違いは何なのかということです。これは最も基本的な質問のようですが、私は決して気にしていないようです。当時は少し戸惑ったのですが、何が違うのでしょうか?全く分かりません!考えていない!

家に帰ってから、mysql のデータ型に関する知識をすぐに復習しました。整数型について少し説明します。

#mysql の整数データ型

データ型説明ストレージ要件tinyint小さな整数1バイトsmallint小さな整数2 バイトmediumint中整数3 バイトint( integer)通常のサイズの整数4 バイトbigintビッグ整数 8 バイト
さまざまなタイプの値の範囲

データ型SignedUnsignedtinyint#smallintmediumintint(整数)bigintさまざまなデータ型デフォルトの表示幅
-128~127 0~ 255
-32768~32767 0~65535
-8388608~8388607 0~16777215
-2147483648~2147483647 0~4294967295
-9223372036854775808~9223372036854775807 0~18446744073709551615

#データ型tinyint smallint##mediumint9int(整数)11 20* 負号は 1 桁を占めるため、各タイプの幅は次のようになります。最大値は1桁です。たとえば、tinyint の最大桁数は 3 に負符号を加えたものであるため、表示幅は 4 になります。 それでは、値の範囲と表示幅の間にはどのような関係があるのでしょうか? tinyint を使った実験をしてみましたが、まず次のようなテーブルを作成しました
デフォルトの表示幅
4
6
##bigint
mysql> desc test_integer;
+-----------+------------+------+-----+---------+----------------+
| Field     | Type       | Null | Key | Default | Extra          |
+-----------+------------+------+-----+---------+----------------+
| id        | int(11)    | NO   | PRI | NULL    | auto_increment |
| test_id_1 | tinyint(1) | NO   |     | NULL    |                |
| test_id_2 | tinyint(4) | NO   |     | NULL    |                |
+-----------+------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

signed tinyint 型の表示幅 1 の test_id_1 と表示幅 4 の test_id_2 の 2 つのフィールドを作成しました。データを挿入し、同時に値 128、1、127 を挿入して、何が起こるかを確認します。

mysql> insert into test_integer (test_id_1,test_id_2) values (-128,-128), (1,1), (127,127);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

ok は、挿入が成功したことを示すプロンプトを表示します。

mysql> select * from test_integer;
+----+-----------+-----------+
| id | test_id_1 | test_id_2 |
+----+-----------+-----------+
|  1 |      -128 |      -128 |
|  2 |         1 |         1 |
|  3 |       127 |       127 |
+----+-----------+-----------+
3 rows in set (0.00 sec)

をクエリしてみましょう。結果は同じです。上記の実験の後、結論を導き出します:

値の範囲表示幅の整数型は関係ありません。表示幅は、MySQL が表示できる数値の最大数を指定するだけです。桁数が指定幅未満の場合は、スペースで埋められます。表示幅より大きい値が挿入された場合は、次のとおりです。値がこの型の整数の値の範囲を超えない場合、値を挿入して表示することができます。

同様に、int (10) と int (11) も表示幅が異なるだけで違いはありません。皆さん、忘れないでください。

推奨チュートリアル: 「

PHP チュートリアル

以上がMySQL の int (10) と int (11) の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。