Hi!
Der max. positive Wert bei einem 4 Byte int ist 2^31 = 2147483648, das hat gerade 10 Stellen.
Und der maximale negative ist so ähnlich, hat aber durch das Vorzeichen eine Stelle mehr.
Ich kapier aber auch nicht warum man hier die Stellen der Dezimalzahl angibt. Ist doch Unsinn, denn es kommt ja auf die Anzahl Bytes an, die dem int zugehordnet sind.
Die Anzahl Bytes ist im Gegensatz zu Stringtypen fest vorgegeben. Die Stellenanzahl für Integer-Werte anzugeben ist optional und praktisch meist belanglos. Zerofill wird vermutlich kaum einer verwenden, und wenn dann wohl auch eher auf der Konsole. In anderen Programmen als Integer weiterverarbeitet gehen die führenden Nullen sowieso wieder verloren.
Bei Zahlen ist eine explizite Längenangabe meines Erachtens nur bei den Typen DECIMAL und FLOAT/REAL sinnvoll und teilweise Pflicht.
Obendrein hat bei nummerischen Typen die Längenangabe nur Einfluss auf die Anzeige auf der MySQL-Konsole.
Wie wirkt sich das da aus?
Das Abfrageergebnis wird auf der Konsole in Form einer mit Zeichen "gemalten" Tabelle dargestellt. Die Längenangabe gibt die minimale Breite an, die für diese Zahlenspalte verwendet wird. Wenn die Zahl mit mehr Stellen dargestellt werden muss, wird sie breiter dargestellt.
Lo!