Occupano diverse quantità di spazio e hanno diversi intervalli di valori accettabili.
Ecco le dimensioni e gli intervalli di valori per SQL Server , altri RDBMS hanno una documentazione simile:
Risulta che utilizzano tutti la stessa specifica (con alcune eccezioni minori annotate di seguito) ma supportano varie combinazioni di questi tipi (Oracle non incluso perché ha solo un NUMBER
tipo di dati, vedere il link sopra):
| 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
Inoltre, supportano gli stessi intervalli di valori (con un'eccezione di seguito) e hanno tutti gli stessi requisiti di archiviazione:
| 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
I tipi "non firmati" sono disponibili solo in MySQL, e il resto usa solo gli intervalli con segno, con una notevole eccezione:tinyint
in SQL Server non è firmato e ha un intervallo di valori da 0 a 255