sql >> Databáze >  >> RDS >> Mysql

Jaký je rozdíl mezi tinyint, smallint, mediumint, bigint a int v MySQL?

Zabírají různé množství místa a mají různé rozsahy přijatelných hodnot.

Zde jsou velikosti a rozsahy hodnot pro SQL Server , ostatní RDBMS mají podobnou dokumentaci:

Ukázalo se, že všechny používají stejnou specifikaci (až na několik drobných výjimek uvedených níže), ale podporují různé kombinace těchto typů (Oracle není zahrnut, protože má pouze NUMBER datový typ, viz výše uvedený odkaz):

             | 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

A podporují stejné rozsahy hodnot (s jednou výjimkou níže) a všechny mají stejné požadavky na úložiště:

            | 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 

Typy "nepodepsané" jsou dostupné pouze v MySQL a zbytek používá pouze podepsané rozsahy, s jednou významnou výjimkou:tinyint v SQL Server je nepodepsaný a má rozsah hodnot 0 až 255



  1. Jak získat strukturu databáze v MySQL pomocí dotazu

  2. Zjistěte, zda hodnota obsahuje alespoň jednu číselnou číslici v Oracle

  3. Vraťte název krátkého dne z data v Oracle

  4. Jak získat záznamy, které obsahují alfanumerické znaky + mezery