Каково различие между tinyint, smallint, mediumint, bigint и интервалом в MySQL?

Каково различие между tinyint, smallint, mediumint, bigint и интервалом в MySQL?

В каких случаях они должны использоваться?

352
задан Lucas - Better Coding Academy 27 March 2014 в 20:35
поделиться

4 ответа

Они занимают разное пространство и имеют разные диапазоны допустимых значений.

Вот размеры и диапазоны значений для 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

554
ответ дан 23 November 2019 в 00:24
поделиться

Разница в объеме памяти, выделенной для каждого целого числа, и в том, какое большое число каждое из них может хранить.

3
ответ дан 23 November 2019 в 00:24
поделиться

размер требуемого хранилища и насколько большими могут быть числа

на 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 байт

29
ответ дан 23 November 2019 в 00:24
поделиться

Похоже, это типы данных MySQL.

Согласно документации они принимают:

  1. tinyint = 1 байт
  2. smallint = 2 байта
  3. mediumint = 3 байта
  4. int = 4 байта
  5. bigint = 8 байт

И, естественно, принимают все большие диапазоны чисел.

13
ответ дан 23 November 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: