MySQL の tinyint、smallint、mediumint、bigint、int の違いは何ですか? 質問する

MySQL の tinyint、smallint、mediumint、bigint、int の違いは何ですか? 質問する

MySQL の tinyint、smallint、mediumint、bigint、int の違いは何ですか?

どのような場合にこれらを使用すればよいでしょうか?

ベストアンサー1

それぞれ占有するスペースの量が異なり、許容される値の範囲も異なります。

SQL Serverの値のサイズと範囲は次のとおりです。他の RDBMS にも同様のドキュメントがあります。

結局、それらはすべて同じ仕様を使用していますが (以下に示すいくつかの小さな例外を除く)、それらの型のさまざまな組み合わせをサポートしています (Oracle はNUMBERデータ型しかないため含まれていません。上記のリンクを参照してください)。

             | SQL Server    MySQL   Postgres    DB2
---------------------------------------------------
tinyint      |     X           X                
smallint     |     X           X         X        X
mediumint    |                 X
int/integer  |     X           X         X        X 
bigint       |     X           X         X        X

これらは同じ値の範囲をサポートしており (以下の 1 つの例外を除く)、すべて同じストレージ要件を備えています。

            | Bytes    Range (signed)                               Range (unsigned)
--------------------------------------------------------------------------------------------
tinyint     | 1 byte   -128 to 127                                  0 to 255
smallint    | 2 bytes  -32768 to 32767                              0 to 65535
mediumint   | 3 bytes  -8388608 to 8388607                          0 to 16777215
int/integer | 4 bytes  -2147483648 to 2147483647                    0 to 4294967295
bigint      | 8 bytes  -9223372036854775808 to 9223372036854775807  0 to 18446744073709551615 

「符号なし」型はMySQLでのみ使用可能で、残りは符号付き範囲のみを使用しますが、1つの注目すべき例外があります。SQL tinyintServerでは符号なしで、値の範囲は0から255です。

おすすめ記事