Sie wissen vielleicht bereits, dass die Länge 1 von int(1) nicht die zulässige Speicherbreite darstellt! Aber viele Leute haben nicht wirklich studiert, was diese Länge bedeutet. Heute werde ich eine kurze Analyse geben! Schauen wir uns ein einfaches Beispiel zur Tabellenerstellung an: Tabellentest erstellen( id int(11) unsigned NOT NULL AUTO_INCREMENT, uid int(3) NICHT NULL, PRIMÄRSCHLÜSSEL (id) )ENGINE=InnoDB STANDARD-CHARSET=utf8mb4; Hier nehmen wir das uid-Feld als Beispiel und setzen es auf int(3) Die Frage ist also, wenn wir int(3) setzen, können wir dann nicht die Daten 1234 speichern? Anschließend können Sie es testen, indem Sie die folgende SQL-Anweisung eingeben in „Test“ einfügen („uid“) VALUES(1234); in „Test“ („uid“) einfügen VALUES(12345678); Das resultierende Diagramm sieht wie folgt aus: Freunde können feststellen, dass die Daten 1234 erfolgreich durch die obige SQL-Anweisung eingefügt wurden, und wir können auch weitere Datenziffern einfügen! Warum ist das so? Siehe unten Hier sind die Gründe: Wir können dieses int(n) einfach so verstehen: Diese Länge teilt MySQL mit, dass die Breite der in diesem Feld gespeicherten Daten n Ziffern beträgt. Wenn Sie nicht n Ziffern speichern, kann MySQL sie natürlich auch normal speichern (solange sie innerhalb des Speicherbereichs dieses Typs liegen)! Dann können wir die Tabelle test2 erneut erstellen und dieses Mal fügen wir dem uid-Feld die folgenden Einschränkungen hinzu: unsigned und zerofill ==Feldbeschränkungen werden später ausführlich besprochen== Der MySQL-Code lautet wie folgt: Tabelle erstellen test2( id int(11) unsigned NOT NULL AUTO_INCREMENT, uid int(3) unsigned zerofill NICHT NULL, PRIMÄRSCHLÜSSEL (id) )ENGINE=InnoDB STANDARD-CHARSET=utf8mb4; Jetzt mein UID-Feld: Länge (n) = 3, Feldeinschränkung = vorzeichenlos und Nullauffüllung: (vorzeichenlose Einschränkung und 0 verwenden, um die Zifferneinschränkung aufzufüllen) Nachdem dieses Einschränkungsfeld festgelegt wurde, füllt das System beim Einfügen von Daten in die Tabelle das UID-Feld links automatisch mit 0, wenn es weniger als 3 Ziffern enthält. Sie können den Code testen, indem Sie die Zahl 33 in das UID-Feld einfügen. einfügen in `test2` (`uid`) VALUES(33); Das resultierende Diagramm sieht wie folgt aus: Sind Sie überrascht, dass bei einer Länge von weniger als 3 tatsächlich von links mit Nullen aufgefüllt wird? Hahahaha Also: Jetzt sollte uns klar sein, dass die Länge n nach int nichts mit der Größe des von Ihnen gespeicherten numerischen Werts zu tun hat! ==Zusammenfassung:== Wenn der Datentyp des Tabellenfelds als int definiert wird, ist die Länge n dahinter bedeutungslos. Solange sie innerhalb des Speicherbereichs dieses Typs liegt, kann MySQL sie normal speichern! Wenn Sie links mit 0 auffüllen müssen, muss dieses Feld eine Zerofill-Beschränkung und eine unsignierte Einschränkung haben! Dies ist das Ende dieses Artikels darüber, was das n nach int(n) in MySQL bedeutet. Weitere relevante MySQL int(n)-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: JavaScript implementiert die Eingabeüberprüfung im Kennwortfeld
>>: Detaillierte Erklärung der Lösung für das zu langsame Docker-Compose
Schritt 1: Erstellen Sie ein Django-Projekt Öffne...
Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...
Mit der SQL JOIN-Klausel können Zeilen aus zwei o...
<META http-equiv="Seite eingeben" CON...
1. Bereiten Sie sich im Voraus vor Zu Ihrer Beque...
Beginnen Sie vorsichtig mit der Reinigung! Auflis...
Inhaltsverzeichnis Vorwort So implementieren Sie ...
1. Vorteile der Vorkompilierung Wir haben alle di...
Manchmal möchten wir nicht, dass der Inhalt unser...
Durchscheinender Rand Ergebnis: Implementierungsc...
Inhaltsverzeichnis Hintergrund Funktion Zweck Ide...
Als Reaktion auf die Popularität von nodejs haben...
1. HTML-Teil <Col span="2">Datei ...
Die Installationsschritte für CentOS 7.3 werden a...
In tatsächlichen Projekten befinden sich die Bild...