SQL Dialects Reference/Data structure definition/Data types/Numeric types
This page includes comparison tables which can be big and complex.
While it's perfectly all right to view them in their complete state, it is recommended to install a comparison tables extension that would allow to select particular columns of interest for comparison.
| SQL version | Feature | Standard | DB2 | Firebird | Ingres | Linter | MSSQL | MySQL | MonetDB | Oracle | PostgreSQL | SQLite | Virtuoso |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ? | Integer (1 byte) | ? | N/A | N/A | tinyint integer1 |
N/A | tinyint (always unsigned) | TINYINT | TINYINT | TINYINT | "char" (including quotation marks) | TINYINT | N/A |
| ? | Integer (2 bytes) | ? | SMALLINT | SMALLINT | smallint integer2 |
SMALLINT | smallint | SMALLINT | SMALLINT | SMALLINT | SMALLINT INT2 |
SMALLINT | SMALLINT |
| ? | Integer (3 bytes) | ? | N/A | N/A | N/A | N/A | N/A | MEDIUMINT | N/A | N/A | N/A | MEDIUMINT | N/A |
| ? | Integer (4 bytes) | ? | INTEGER | INTEGER | integer integer4 |
INT INTEGER |
int | INT | INT | INT INTEGER |
INT INTEGER INT4 |
INTEGER | INT INTEGER |
| ? | Integer (8 bytes) | ? | BIGINT | BIGINT | bigint integer8 |
BIGINT | bigint | BIGINT | BIGINT | NUMBER(19) | BIGINT INT8 |
BIGINT | N/A |
| ? | Float (single precision, 4 bytes) | ? | REAL | FLOAT | float4 real float(23) |
FLOAT REAL FLOAT(n), n≤24 |
real float(24) |
FLOAT | REAL | REAL | REAL FLOAT(24) |
FLOAT REAL |
REAL |
| ? | Float (double precision, 8 bytes) | ? | DOUBLE FLOAT |
DOUBLE PRECISION | float float8 double precision float(53) |
DOUBLE DOUBLE PRECISION FLOAT(n), n>24 |
float float(53) |
DOUBLE | DOUBLE | FLOAT DOUBLE PRECISION |
DOUBLE PRECISION FLOAT(53) |
DOUBLE DOUBLE PRECISION |
FLOAT |
| ? | Fixed precision (p) and scale (s) number | ? | DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) DEC(p,s) NUMERIC(p, s) NUMBER(p,s) |
decimal(p, s) numeric(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
DECIMAL(p, s) NUMERIC(p, s) |
NUMERIC(p, s) | DECIMAL(p, s) NUMERIC(p, s) |
| ? | Fixed precision p and s limits | ? | p ≤ 31, 0 ≤ s ≤ p | p ≤ 18, 0 ≤ s ≤ p | p ≤ 31, 0 ≤ s ≤ p | p ≤ 30, 0 ≤ s ≤ p, s ≤ 10, p-s ≤ 20 | p ≤ 38, 0 ≤ s ≤ p | p ≤ 65, 0 ≤ 30 ≤ s ≤ p | p ≤ 19, 0 ≤ s ≤ p | p ≤ 38, 0 ≤ s ≤ p | p ≤ 1000, 0 ≤ s ≤ p | None, numbers stored as strings | |
| ? | UNSIGNED support | ? | No | No | No | No | No | Yes | No | Yes | No | No | No |
| ? | Set display width in integer | ? | No | No | No | No | No | Yes | No | No | No | Yes | No |