Каково различие между tinyint, smallint, mediumint, bigint и интервалом в MySQL?
В каких случаях они должны использоваться?
Они занимают разное пространство и имеют разные диапазоны допустимых значений.
Вот размеры и диапазоны значений для SQL Server , другие СУБД имеют аналогичную документацию:
Оказывается, все они используют одну и ту же спецификацию (с несколькими незначительными исключениями, указанными ниже), но поддерживают различные комбинации этих типов (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
И они поддерживают одни и те же диапазоны значений (за одним исключением ниже) и все имеют одинаковые требования к хранилищу:
| 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
в SQL Server не имеет знака и имеет диапазон значений от 0 до 255
Разница в объеме памяти, выделенной для каждого целого числа, и в том, какое большое число каждое из них может хранить.
размер требуемого хранилища и насколько большими могут быть числа
на SQL Server
tinyint 1 байт, от 0 до 255
smallint 2 байта, -2^15 (-32,768) до 2^15-1 (32,767)
int 4 байта, -2^31 (-2,147,483, 648) to 2^31-1 (2,147,483,647)
bigint 8 байт, -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
вы можете хранить число 1 во всех 4, но bigint будет использовать 8 байт, а tinyint - 1 байт
Похоже, это типы данных MySQL.
Согласно документации они принимают:
И, естественно, принимают все большие диапазоны чисел.