One confusing aspect of MySQL is declaring integer columns. It took me a while to understand what the number in parenthesis meant, for example:
Initially, I thought it meant that column could only hold unsigned (no negatives) integer values up to a maximum 999999, which is 6 characters wide.
This is wrong thinking. The 6 means something else entirely…
However, the reason I thought this is because string columns are declared in a similar fashion:
This means a character column, with a maximum length of 6 characters, such as these words:
Notice those are all 6 characters in length.
If I tried storing the word “special” in that column, MySQL would chop the value to be “specia”, since the original word has 7 characters.
Anyway, integer columns all have a preset range of values allowed. The number in parenthesis only indicates the display width.
This is probably still confusing, so let me explain further…
The display width is a number from 1 to 255. You can set the display width if you want all of your integer values to “appear” similarly: