Summary: in this tutorial, you will learn about various Db2 integer data types including SMALLINT, INT, and BIGINT.
Introduction to Db2 integer types
Db2 supports three types of integers: SMALLINT, INT, and BIGINT.
SMALLINT
SMALLINT is used to stores small integers with a precision of 15 bits. The range of SMALLINT is -32,768 to +32,767.
INT
INT is used to store large integers with a precision of 31 bits. The range of INT is -2,147,483,648 to +2,147,483,647. INTEGER is the synonym of INT, therefore, they are interchangeable.
BIGINT
BIGINT is used to store big integers with a precision of 63 bits. The range of big integers is -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807.
When you design database tables, it is a good practice to choose the appropriate integer types to save the space. For example, if you just need to store the number of pages of a books, the SMALLINT is sufficient.
Db2 integer example
First, create a table named db2_integers that consists of some integer columns:
CREATE TABLE db2_integers(
smallint_col SMALLINT,
int_col INT,
bigint_col BIGINT
);
Code language: SQL (Structured Query Language) (sql)Second, insert some values into the table:
INSERT INTO db2_integers (
smallint_col,
int_col,
bigint_col )
VALUES (
32767,
2147483647,
9223372036854775807
);
Code language: SQL (Structured Query Language) (sql)Third, query data from the db2_integers table:
SELECT * FROM db2_integers;
Code language: SQL (Structured Query Language) (sql)Here is the output:

Fourth, try to insert integers that exceed the range of the integer columns:
INSERT INTO db2_integers (
smallint_col,
int_col,
bigint_col )
VALUES (
32768,
2147483648,
9223372036854775808
);
Code language: SQL (Structured Query Language) (sql)Db2 issued the following error message:
SQL0413N Overflow occurred during numeric data type conversion.
Code language: SQL (Structured Query Language) (sql)Fifth, attempt to insert decimal numbers instead of integers into the integer columns:
INSERT INTO db2_integers (
smallint_col,
int_col,
bigint_col )
VALUES (
32766.6,
2147483646.6,
9223372036854775806.6
);
Code language: SQL (Structured Query Language) (sql)Db2 implicitly converted the decimal numbers to integer numbers before insert:
SELECT * FROM db2_integers;
Code language: SQL (Structured Query Language) (sql)The output is:

In this tutorial, you have learned how to use various types of Db2 integers including SMALLINT, INT, and BIGINT.