INT (5) vs SMALLINT (5): Zahlen in Klammern nach dem numerischen Typ


29

Gibt es in MySQL-Tabellendefinitionen einen Unterschied zwischen INT(5)und SMALLINT(5)? Oder haben beide die gleiche Größe?

Antworten:


41

Ein intund eine smallintunterschiedliche 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)eine INTmit 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 ZEROFILLwird der Standardabstand von Leerzeichen durch Nullen ersetzt. Beispielsweise wird für eine als deklarierte Spalte INT(4) ZEROFILLein Wert von 5als abgerufen 0005.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.