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

Einführung in die SSL- und WSS-Schritte für die Nginx-Konfiguration

Inhaltsverzeichnis Vorwort 1. Nginx-Installation ...

WeChat-Applet-Picker - Mehrspalten-Selektor (Modus = MultiSelector)

Inhaltsverzeichnis 1. Wirkungsdiagramm (mehrere S...

Detaillierte Erläuterung des Datenreaktionsprinzips von Vue

Dieser Artikel richtet sich hauptsächlich an diej...

Vue implementiert einen Wasserfallfluss mit unendlichem Laden

In diesem Artikelbeispiel wird der spezifische Co...

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker ...

MySQL Master-Slave-Prinzip und Konfigurationsdetails

MySQL Master-Slave-Konfiguration und Prinzip, zu ...

nginx+tomcat-Beispiel für den Zugriff auf das Projekt über den Domänennamen

Ich wollte wissen, wie ich mit einem Domänennamen...

Zwei Methoden zum Wiederherstellen von MySQL-Daten

1. Einleitung Vor einiger Zeit gab es eine Reihe ...

Analyse des Framework-Prinzips des Linux-Eingabesubsystems

Eingabe-Subsystem-Framework Das Linux-Eingabesubs...

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

In diesem Artikel wird der spezifische Code für d...

CSS-Beispielcode zum Zeichnen eines Lutschers

Hintergrund: Machen Sie jeden Tag ein wenig Forts...

Der Unterschied zwischen VOLUME und docker -v in Dockerfile

Es gibt offensichtliche Unterschiede zwischen der...

Detaillierte Erläuterung der Persistenz des Vue-Seitenstatus

Inhaltsverzeichnis Code: Auffüllen: Zusammenfasse...

Beispielanalyse des Prinzips der MySQL-Transaktionsisolationsebene

Einführung Dies ist Ihnen sicherlich schon einmal...