Numeric data types in SQL allow us to store and manipulate numerical values. In addition to specifying the data type, we can also control the precision and scale of the numeric values.
What is precision and scale?
Precision determines the total number of digits that can be stored in a numeric data type. It includes both the digits before and after the decimal point.
Scale determines the number of digits that can be stored after the decimal point.
For example, in the number 123.45, the precision is 5 (3 digits before the decimal and 2 digits after), and the scale is 2.
Common numeric data types
Let’s explore some commonly used numeric data types in SQL and their precision and scale options.
INT
The INT
data type is used to store whole numbers without a decimal point. It has a precision of 10 and a scale of 0. For example:
CREATE TABLE my_table (
my_column INT
);
DECIMAL
The DECIMAL
data type is used for fixed-point decimal numbers. It allows us to specify the precision and scale explicitly. For example:
CREATE TABLE my_table (
my_column DECIMAL(10, 2)
);
In this example, we have a precision of 10 and a scale of 2, which means we can store numbers with 8 digits before the decimal point and 2 digits after.
FLOAT
The FLOAT
data type is used for floating-point numbers. It has a variable precision and scale, depending on the implementation. For example:
CREATE TABLE my_table (
my_column FLOAT
);
DOUBLE
The DOUBLE
data type is also used for floating-point numbers, but it offers higher precision compared to FLOAT
. Again, the precision and scale depend on the implementation. For example:
CREATE TABLE my_table (
my_column DOUBLE
);
NUMERIC
The NUMERIC
data type is similar to DECIMAL
and allows us to specify the precision and scale. For example:
CREATE TABLE my_table (
my_column NUMERIC(8, 4)
);
In this example, we can store numbers with 4 digits before the decimal point and 4 digits after.
Conclusion
In SQL, the precision and scale options for numeric data types allow us to control the range and precision of the numerical values we can store. By understanding and correctly utilizing these options, we can effectively store and manipulate numeric data in our databases.
#programming #sql