それらは異なる量のスペースを占有し、許容値の範囲が異なります。
SQLServerの値のサイズと範囲は次のとおりです。 、他のRDBMSにも同様のドキュメントがあります:
それらはすべて同じ仕様を使用しますが(以下に示すいくつかのマイナーな例外を除く)、これらのタイプのさまざまな組み合わせをサポートします(NUMBER
しかないため、Oracleは含まれていません データ型、上記のリンクを参照):
| 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でのみ使用可能であり、残りは署名された範囲のみを使用します。ただし、 tinyint
という1つの注目すべき例外があります。 SQLServerでは署名されていません 値の範囲は0〜255