INTEGER data types are used to store whole numbers. SMALLINT is the abbreviation for small integer. BIGINT was added in Firebird 1.5 and is the SQL99-compliant 64-bit signed integer type. BIGINT is available in Dialect 3 only.
Values following the decimal point are not allowed. Depending upon the numeric area required, following INTEGER types are supported:
Type | Size | Value Range |
---|---|---|
SmallInt | 2 bytes | -32,768 to +32,767 |
Integer | 4 bytes | -2,147,483,648 to +2,147,483,647 |
BigInt | 64 bytes | -263 to 263-1 |
or -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
4 bytes of data storage are required for the INTEGER value, whereby 31 bits are for the number and 1 bit for the sign. 2 bytes of data storage are required for the small integer value, whereby 15 bits are for the number and 1 bit for the sign. It is usually preferable to use an INTEGER data type as 2 bytes more or less are fairly irrelevant these days.
An INTEGER is a 15-digit number and although extremely large, is by far not as large as the NUMERIC(18). INTEGER types are particularly suited for unique identification numbers, as Firebird/InterBase® contains mechanisms for the automatic generation of whole number values (please refer to generator for further information). The resulting indices for the connection of multiple tables to each other are relatively small and offer extremely quick access, as the highest computer performance on all computer platforms is generally found in INTEGER operations. It is possible to specify the display format of an INTEGER under Environment Options / Grid / Display Formats.
SMALLINTs can also be used for BOOLEAN data types e.g. true/false, male/female.