sql >> Database >  >> RDS >> Mysql

Wat is het verschil tussen tinyint, smallint, mediumint, bigint en int in MySQL?

Ze nemen verschillende hoeveelheden ruimte in beslag en hebben verschillende acceptabele waarden.

Dit zijn de grootten en bereiken van waarden voor SQL Server , andere RDBMS'en hebben vergelijkbare documentatie:

Blijkt dat ze allemaal dezelfde specificatie gebruiken (met een paar kleine uitzonderingen die hieronder worden vermeld) maar verschillende combinaties van die typen ondersteunen (Oracle niet inbegrepen omdat het slechts een NUMBER heeft datatype, zie de bovenstaande link):

             | 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

En ze ondersteunen dezelfde waardebereiken (met één uitzondering hieronder) en hebben allemaal dezelfde opslagvereisten:

            | 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 "niet-ondertekende" typen zijn alleen beschikbaar in MySQL en de rest gebruikt alleen de ondertekende bereiken, met één opmerkelijke uitzondering:tinyint in SQL Server is niet ondertekend en heeft een waardebereik van 0 tot 255



  1. Goede preventie van MYSQL-injectie?

  2. MariaDB DATABASE() uitgelegd

  3. Wat betekent een (+) teken in een Oracle SQL WHERE-clausule?

  4. Bereken delta (verschil van huidige en vorige rij) in sql