> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/data-types/numeric-data-types.md).

# Numeric Data Types

{% columns %}
{% column %}
{% content-ref url="/pages/loP78WZWSDu7UolDM0bw" %}
[Numeric Data Type Overview](/docs/server/reference/data-types/numeric-data-types/numeric-data-type-overview.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
General introduction to numeric data types. This page summarizes the available integer, fixed-point, and floating-point types and their storage characteristics.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/2IpSFW6lVPmo1d4A1DjC" %}
[BIGINT](/docs/server/reference/data-types/numeric-data-types/bigint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Large integer type. A BIGINT uses 8 bytes and can store values from -9223372036854775808 to 9223372036854775807 (signed) or 0 to 18446744073709551615 (unsigned).
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/tx1v3oP48ef73G80NeDK" %}
[BIT](/docs/server/reference/data-types/numeric-data-types/bit.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Bit-field data type. A BIT(M) column stores M bits per value, allowing storage of binary values from 1 to 64 bits in length.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/cSI9ZDZ6QONFX12TRN4F" %}
[BOOL](/docs/server/reference/data-types/numeric-data-types/bool.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for TINYINT(1). This type is commonly used to represent boolean values, where 0 is considered false and non-zero values are true.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/vMKEEM47dbVqqLVfI9r0" %}
[BOOLEAN](/docs/server/reference/data-types/numeric-data-types/boolean.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete BOOLEAN type reference: TINYINT(1) synonym, TRUE/FALSE aliases, CREATE TABLE/SHOW CREATE TABLE output, and IF()/IS operator evaluation.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/fiuQtdSRgj9s3EgfF6b5" %}
[DEC, NUMERIC, FIXED](/docs/server/reference/data-types/numeric-data-types/dec-numeric-fixed.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonyms for DECIMAL. These keywords declare fixed-point numbers, which store exact numeric data with a defined precision and scale.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/FezMT0q6CZmWVUQxBdVk" %}
[DEC](/docs/server/reference/data-types/numeric-data-types/numeric-data-types-dec.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DECIMAL. This keyword creates a fixed-point column with exact precision, suitable for financial calculations.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ShaqckzUiKCYiftmMiCr" %}
[DECIMAL](/docs/server/reference/data-types/numeric-data-types/decimal.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete DECIMAL type reference: DECIMAL(M,D) syntax, precision limits (M≤65, D≤38), SIGNED/UNSIGNED/ZEROFILL options, and rounding behavior.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/1SexNeTbHDwQSeqDWVi6" %}
[DOUBLE PRECISION](/docs/server/reference/data-types/numeric-data-types/double-precision.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DOUBLE. This keyword declares a normal-size (8-byte) floating-point number with double precision.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/JpePRSetkcjH8Ma5yTqV" %}
[DOUBLE](/docs/server/reference/data-types/numeric-data-types/double.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Double precision floating-point number. A DOUBLE column uses 8 bytes to store large or precise approximate values.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/e43KUNho8F4N2YznXziK" %}
[FIXED](/docs/server/reference/data-types/numeric-data-types/fixed.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DECIMAL. This keyword is used to define columns that require exact numeric precision, such as currency.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/0UCDMfqNlxPY4LhGpYP8" %}
[FLOAT](/docs/server/reference/data-types/numeric-data-types/float.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Single precision floating-point number. A FLOAT column uses 4 bytes and stores approximate values with less precision than DOUBLE.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/nK2SPl4fyWBnlfq0eqID" %}
[FLOAT4](/docs/server/reference/data-types/numeric-data-types/float4.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for FLOAT. This keyword declares a single-precision floating-point column.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SqvtfZ0iI2KCln9VvoD3" %}
[FLOAT8](/docs/server/reference/data-types/numeric-data-types/float8.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DOUBLE. This keyword declares a double-precision floating-point column.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/lnJhKtBvzcHaTeNZMUB3" %}
[Floating-point Accuracy](/docs/server/reference/data-types/numeric-data-types/floating-point-accuracy.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Explanation of floating-point precision issues. This page details why FLOAT and DOUBLE types are approximate and how rounding errors occur.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/hjrrK0PnGmOO3TfWnrOz" %}
[INT](/docs/server/reference/data-types/numeric-data-types/int.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete INT type reference: INT(M) syntax, signed (-2147483648 to 2147483647) vs unsigned (0 to 4294967295) ranges, and ZEROFILL padding guidelines.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/j1HVsLyT2r2L8G5ZkvVk" %}
[INT1](/docs/server/reference/data-types/numeric-data-types/int1.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for TINYINT. This type uses 1 byte of storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/pVk2oumZgIHJa6y18MmA" %}
[INT2](/docs/server/reference/data-types/numeric-data-types/int2.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for SMALLINT. This type uses 2 bytes of storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/dK3mq6AIYAeV7nM5cI9r" %}
[INT3](/docs/server/reference/data-types/numeric-data-types/int3.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for MEDIUMINT. This type uses 3 bytes of storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/X5Jcw4SDgjPnbheYcFgW" %}
[INT4](/docs/server/reference/data-types/numeric-data-types/int4.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for INT. This type uses 4 bytes of storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/R0dJ66u29SJQWq5qHzqm" %}
[INT8](/docs/server/reference/data-types/numeric-data-types/int8.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for BIGINT. This type uses 8 bytes of storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/QiJIBqqOYqbAVGO4r7zO" %}
[INTEGER](/docs/server/reference/data-types/numeric-data-types/integer.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for INT. This keyword declares a standard 4-byte integer column.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/qklLaiPHguvjVMLpfxHk" %}
[MEDIUMINT](/docs/server/reference/data-types/numeric-data-types/mediumint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Medium-sized integer. A MEDIUMINT column uses 3 bytes and stores values from -8388608 to 8388607 (signed) or 0 to 16777215 (unsigned).
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/5VLhlhEyMBQ1lAYHiRbH" %}
[MIDDLEINT](/docs/server/reference/data-types/numeric-data-types/middleint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for MEDIUMINT. This keyword refers to the 3-byte integer type.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/xvPmEB3GZptO1n5PqhpU" %}
[NUMBER](/docs/server/reference/data-types/numeric-data-types/number.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Oracle-compatible synonym for DECIMAL. This type is used for fixed-point arithmetic.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/WokBFRZT1pKxHNZTWHuZ" %}
[NUMERIC](/docs/server/reference/data-types/numeric-data-types/numeric.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DECIMAL. This type stores exact numeric data values.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/QSmTJHRvqUo5xt9uihh0" %}
[REAL](/docs/server/reference/data-types/numeric-data-types/real.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Synonym for DOUBLE. In standard SQL mode, REAL is a double-precision floating-point number.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/PFaWWQy6dSuH6sHvLx8L" %}
[SMALLINT](/docs/server/reference/data-types/numeric-data-types/smallint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Small integer type. A SMALLINT column uses 2 bytes and stores values from -32768 to 32767 (signed) or 0 to 65535 (unsigned).
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/nBYCvjH3D5fyZFXMGsGc" %}
[TINYINT](/docs/server/reference/data-types/numeric-data-types/tinyint.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Very small integer type. A TINYINT column uses 1 byte and stores values from -128 to 127 (signed) or 0 to 255 (unsigned).
{% endcolumn %}
{% endcolumns %}
