MySQL supports all ANSI SQL2 numeric data types. MySQL numeric types break down into two groups: integer and floating point. Within each group, the types differ by the amount of storage required for them.
Numeric types allow you to specify a display size, which affects the
way MySQL displays results. The display size bears no relation to the
internal storage provided by each data type. In addition, the
floating types allow you to optionally specify the number of digits
that follow the decimal point. In such cases, the digits value should
be an integer from 0 to 30 and at most two less than the display
size. If you do make the digits value greater than two less than the
display size, the display size will automatically change to two more
than the digits value. For instance, MySQL automatically changes
FLOAT(6,5)
to FLOAT(7,5)
.
When you insert a value into a column that requires more storage than
the data type allows, it will be clipped to the minimum (negative
values) or maximum (positive values) value for that data type. MySQL
will issue a warning when such clipping occurs during ALTER
TABLE
, LOAD DATA INFILE
,
UPDATE
, and multirow INSERT
statements.
The AUTO_INCREMENT
attribute may be supplied for
at most one column of an integer type in a table. The
UNSIGNED
attribute may be used with any numeric
type. An unsigned column may contain only positive integers or
floating-point values. The ZEROFILL
attribute
indicates that the column should be left padded with zeros when
displayed by MySQL. The number of zeros padded is determined by the
column’s display width.