sql >> Databasteknik >  >> RDS >> Mysql

Vad är skillnaden mellan tinyint, smallint, mediumint, bigint och int i MySQL?

De tar olika mycket plats och de har olika intervall av acceptabla värden.

Här är storlekarna och värdeintervallen för SQL Server , andra RDBMS har liknande dokumentation:

Det visar sig att de alla använder samma specifikation (med några få mindre undantag som anges nedan) men stöder olika kombinationer av dessa typer (Oracle ingår inte eftersom det bara har ett NUMBER datatyp, se länken ovan):

             | 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

Och de stöder samma värdeintervall (med ett undantag nedan) och alla har samma lagringskrav:

            | 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 

De "osignerade" typerna är endast tillgängliga i MySQL, och resten använder bara de signerade intervallen, med ett anmärkningsvärt undantag:tinyint i SQL Server är osignerad och har ett värdeområde på 0 till 255



  1. MINUS-operator i MySQL?

  2. ClassCastException:java.math.BigInteger kan inte castas till java.lang.Long på att ansluta till MySQL

  3. Heroku Postgresql med Google Datastudio

  4. Dela upp IPv4-adressen i 4 nummer i Oracle sql