# What Are the Valid Db2 Numeric Data Type?

//

Angela Bailey

When working with Db2, it’s important to understand the different numeric data types that are valid for storing numerical values. These data types determine the range and precision of the numbers that can be stored, allowing you to choose the most appropriate type for your specific needs.

## Numeric Data Types

Db2 provides several numeric data types that you can use to store different types of numbers. These include:

• SMALLINT: This data type is used to store small integers. It has a range of -32,768 to 32,767.
• INTEGER: The INTEGER data type is used for storing whole numbers. It has a range of -2,147,483,648 to 2,147,483,647.
• BIGINT: BIGINT is used for storing larger whole numbers.

It has a range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.

• DECIMAL(p,s): DECIMAL is used for storing exact decimal numbers. The ‘p’ represents the precision or the total number of digits that can be stored (including both integer and fractional parts), while ‘s’ represents the scale or the number of digits after the decimal point.
• FLOAT: FLOAT is used for storing approximate decimal numbers. It provides faster processing but may introduce small rounding errors.
• REAL: REAL is a single-precision floating-point number with a smaller range compared to FLOAT.
• DOUBLE PRECISION: DOUBLE PRECISION is a double-precision floating-point number with a larger range compared to REAL.

## Choosing the Right Data Type

When choosing a numeric data type for your Db2 database, it’s important to consider the range and precision required for your specific data. If you only need to store small integers, using SMALLINT can save storage space. However, if you need to store larger numbers, BIGINT provides a wider range.

If you require exact decimal values with a specific precision and scale, DECIMAL is the suitable choice. On the other hand, if approximate decimal values are sufficient and performance is a concern, FLOAT can be used.

It’s important to note that using data types with higher precision or larger ranges may consume more storage space and impact performance. Therefore, it’s essential to choose the most appropriate data type based on your specific requirements.

### Example:

Let’s say we have a table in our Db2 database where we want to store employee salaries. Since salaries are typically whole numbers and can be large, we would choose the BIGINT data type for this column:

```CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name VARCHAR(50),
salary BIGINT
);
```

In this example, we use BIGINT to ensure that we can store salaries up to 9 quintillion (9,223,372,036,854,775,807) without any loss of precision.

## Conclusion

Understanding the different numeric data types in Db2 is crucial for effective database design and management. By selecting the appropriate data type based on your requirements for range and precision, you can optimize storage space and improve performance in your applications.