Was bedeutet das n nach int(n) in MySQL?

Was bedeutet das n nach int(n) in MySQL?

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:
  • Unterschied zwischen int(10) und int(11) in MySQL
  • Sind die Wertebereiche von int(3) und int(10) in MySQL gleich?
  • Detaillierte Erklärung des Unterschieds zwischen MySQL int(3) und int(11)
  • Eine kurze Diskussion über den Unterschied zwischen int(1) und int(10) in MySQL

<<:  JavaScript implementiert die Eingabeüberprüfung im Kennwortfeld

>>:  Detaillierte Erklärung der Lösung für das zu langsame Docker-Compose

Artikel empfehlen

Allgemeine Verwendung von regulären Ausdrücken in MySQL

Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...

Lernen Sie einfach verschiedene SQL-Joins

Mit der SQL JOIN-Klausel können Zeilen aus zwei o...

Detaillierte Erklärung des Unterschieds zwischen in und exists in MySQL

1. Bereiten Sie sich im Voraus vor Zu Ihrer Beque...

Docker-Bereinigungsumgebungsvorgang

Beginnen Sie vorsichtig mit der Reinigung! Auflis...

So verwenden Sie Provide zur Implementierung der Statusverwaltung in Vue3

Inhaltsverzeichnis Vorwort So implementieren Sie ...

MySQL-Vorkompilierung in einem Artikel verstehen

1. Vorteile der Vorkompilierung Wir haben alle di...

CSS3 erzielt verschiedene Randeffekte

Durchscheinender Rand Ergebnis: Implementierungsc...

Wie man die Idee von Vue nutzt, um einen Speicher zu kapseln

Inhaltsverzeichnis Hintergrund Funktion Zweck Ide...

Konfigurieren von MySQL und Squel Pro auf dem Mac

Als Reaktion auf die Popularität von nodejs haben...

Grafisches Tutorial zur Installation von CentOS 7.3 auf VMWare

Die Installationsschritte für CentOS 7.3 werden a...

JavaScript zum Erzielen eines benutzerdefinierten Bildlaufleisteneffekts

In tatsächlichen Projekten befinden sich die Bild...