Gibt es in MySQL-Tabellendefinitionen einen Unterschied zwischen INT(5)
und SMALLINT(5)
? Oder haben beide die gleiche Größe?
Ein int
und eine smallint
unterschiedliche Größen haben und folglich reicht.
Das (5)
ist smallint(5)
oder int(5)
wird ein "numerisches Typattribut" genannt und repräsentiert die "Anzeigebreite" des Feldes.
MySQL unterstützt eine Erweiterung, mit der optional die Anzeigebreite ganzzahliger Datentypen in Klammern nach dem Basisschlüsselwort für den Typ angegeben werden kann. Gibt beispielsweise
INT(4)
eineINT
mit einer Anzeigebreite von vier Stellen an. Diese optionale Anzeigebreite kann von Anwendungen verwendet werden, um Ganzzahlwerte mit einer Breite anzuzeigen, die kleiner als die für die Spalte angegebene Breite ist, indem sie mit Leerzeichen nach links aufgefüllt werden. (Das heißt, diese Breite ist in den Metadaten enthalten, die mit den Ergebnismengen zurückgegeben werden. Ob sie verwendet werden oder nicht, hängt von der Anwendung ab.)In Verbindung mit dem optionalen (nicht standardmäßigen) Attribut
ZEROFILL
wird der Standardabstand von Leerzeichen durch Nullen ersetzt. Beispielsweise wird für eine als deklarierte SpalteINT(4) ZEROFILL
ein Wert von5
als abgerufen0005
.
Dies ist eine MySQL- "Erweiterung", und zerofill ist eine "Erweiterung" für eine Erweiterung.
Verwenden Sie für die sinnvolle Methode zum Steuern der Anzeige eines numerischen Typs nicht die Option Attribute für numerischen Typ