Was bedeutet "unsigned" in MySQL und wann wird es verwendet?

278

Was bedeutet "unsigned" in MySQL und wann sollte ich es verwenden?

HILFE
quelle

Antworten:

527

MySQL sagt:

Alle Ganzzahltypen können ein optionales (nicht standardmäßiges) Attribut UNSIGNED haben. Der vorzeichenlose Typ kann verwendet werden, um nur nicht negative Zahlen in einer Spalte zuzulassen oder wenn Sie einen größeren oberen Zahlenbereich für die Spalte benötigen . Wenn eine INT-Spalte beispielsweise UNSIGNED ist, ist die Größe des Spaltenbereichs gleich, aber die Endpunkte verschieben sich von -2147483648 und 2147483647 auf 0 und 4294967295.

Wann benutze ich es?

Stellen Sie sich folgende Frage: Wird dieses Feld jemals einen negativen Wert enthalten ?
Wenn die Antwort Nein lautet, möchten Sie einen UNSIGNEDDatentyp.

Ein häufiger Fehler ist es, einen Primärschlüssel zu verwenden , die ein Auto-Inkrement INTbeim Start Null , aber der Typ ist SIGNED, in diesem Fall werden Sie nie eine der negativen Zahlen berühren und Sie reduzieren die Bandbreite der möglichen id auf der Hälfte ist.

Codaddict
quelle
8
Werte, die die 'Größe' von Dingen darstellen, wie die Menge eines bestimmten Artikels in einer Bestellung oder der Abstand zwischen zwei Standorten, werden normalerweise nicht signiert
SingleNegationElimination
31
Gute Antwort, scheint seltsam, dass MySQL nicht standardmäßig Ganzzahlen ohne Vorzeichen verwendet, wenn sie Identitäten automatisch inkrementieren?
Wired00
3
Wenn Sie eine klarere
NaveenDA
Ich wünschte wirklich, es gäbe auch ein positiveAttribut, da es noch häufiger vorkommt, dass Sie nur mit positiven Zahlen arbeiten möchten, die nicht Null sind.
still_dreaming_1