Frage:Haben die MySQL-Felder unsigned int(3) und unsigned int(6) den gleichen Wertebereich? Wenn unterschiedlich, wie groß sind sie? Antwort:Anders: int(3) kann bis zu 3 Ziffern vorzeichenloser Ganzzahlen anzeigen, und int(6) kann bis zu 6 Ziffern vorzeichenloser Ganzzahlen anzeigen. Wenn Ihre Antwort die gleiche ist wie oben, herzlichen Glückwunsch, Sie haben den gleichen Fehler gemacht wie ich. Wirklichkeit:Ein Integer vom Typ int belegt 4 Bytes. Der Bereich eines vorzeichenbehafteten Integers ist: -2^31 ~ 2^31-1, und der Bereich eines vorzeichenlosen Integers ist: 0 ~ 2^32-1. Da es sich bei allen um vorzeichenlose Integer handelt, ist der Speicherbereich derselbe. int(6) füllt die Zahl einfach mit 0 auf, wenn sie weniger als 6 Ziffern hat. Wenn sie mehr als 6 Ziffern hat, ist kein Auffüllen erforderlich. Wir erstellen folgende Tabelle: Tabelle löschen, falls vorhanden, Test; CREATE TABLE `test` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `a` int(11) NICHT NULL, `b` int(11) unsigned zerofill NICHT NULL, `c` int(5) DEFAULT NULL, `d` int(5) unsigned zerofill NICHT NULL, `e` int(15) DEFAULT NULL, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB STANDARD-CHARSET=utf8mb4; Nachdem Sie einige Daten eingegeben haben, verwenden Sie die cmd-Befehlszeile zum Anzeigen von: mysql> wähle * aus Test; +----+------------+----------+------------+------------+------------+ | Ich würde | a | b | c | d | e | +----+------------+----------+------------+------------+------------+ | 1 | 1 | 00000000001 | 1 | 00001 | 1 | | 2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 | +----+------------+----------+------------+------------+------------+ Es wurde festgestellt, dass sowohl int(3) als auch int(6) ganze Zahlen mit mehr als 6 Ziffern anzeigen können. Wenn die Zahl jedoch weniger als 3 oder 6 Ziffern hat, wird sie am Anfang mit Nullen aufgefüllt. Hinweis: Wenn Sie ein Tool wie Navicat zur Anzeige verwenden, wird 0 nicht hinzugefügt. Es kann sein, dass es verarbeitet wurde. Sie müssen die MySQL-Befehlszeile verwenden, um diesen Effekt zu sehen. Schauen Sie im Handbuch nach, die Erklärung lautet: MySQL unterstützt auch die Möglichkeit, die Anzeigebreite von Integer-Werten in Klammern hinter dem Typ-Schlüsselwort anzugeben (beispielsweise INT(4)). Diese optionale Anzeigebreite gibt an, dass die Anzeigebreite von links aus aufgefüllt werden soll, wenn sie kleiner als die angegebene Spaltenbreite ist. Die Anzeigebreite schränkt weder den Wertebereich ein, der in der Spalte enthalten sein kann, noch schränkt sie die Anzeige von Werten ein, die die angegebene Breite der Spalte überschreiten. Mit anderen Worten, die Länge von int hat keinen Einfluss auf die Speichergenauigkeit der Daten. Die Länge bezieht sich nur auf die Anzeige. Um es klarer zu machen, haben wir im obigen Beispiel in der Anweisung zur Tabellenerstellung Zerofill verwendet. WissenspunkteDas M in int (M) gibt die maximale Anzeigebreite an. Die maximal gültige Anzeigebreite beträgt 255, und die Anzeigebreite hat nichts mit der Speichergröße oder dem im Typ enthaltenen Wertebereich zu tun. Lassen Sie uns zunächst über die numerischen Typen von MySQL sprechen. MySQL unterstützt alle standardmäßigen numerischen SQL-Datentypen. Zu diesen Typen gehören strenge numerische Datentypen (INTEGER, SMALLINT, DECIMAL und NUMERIC) und ungefähre numerische Datentypen (FLOAT, REAL und DOUBLE PRECISION). Das Schlüsselwort INT ist ein Synonym für INTEGER und das Schlüsselwort DEC ist ein Synonym für DECIMAL. Der BIT-Datentyp speichert Bitfeldwerte und wird von MyISAM-, MEMORY-, InnoDB- und BDB-Tabellen unterstützt. Als Erweiterung des SQL-Standards unterstützt MySQL auch die Integer-Typen TINYINT, MEDIUMINT und BIGINT. In der folgenden Tabelle sind der für jeden Ganzzahltyp erforderliche Speicher und Bereich aufgeführt. abschließend:Unabhängig davon, ob es sich um unsigned int(3) oder unsigned int(6) handelt, wird eine 4 Byte große vorzeichenlose Ganzzahl gespeichert, also 0~2^32. ZusammenfassenDies ist das Ende dieses Artikels darüber, ob der Wertebereich von int(3) und int(10) in MySQL derselbe ist. Weitere Informationen zum Wertebereich von mysql int(3) und int(10) 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:
|
<<: Zusammenfassung des fragmentierten Wissens zum Docker-Management
>>: Detaillierte Erläuterung der CSS-Randüberlappung und Lösungssuche
Dieser Effekt tritt am häufigsten auf unserer Bro...
Einführung in Selenium Grid Obwohl einige neue Fu...
Wenn wir einem Rechteck oder einer anderen Form, ...
getElementById kann das Objekt nicht abrufen Beim...
Unabhängig von der verwendeten Ubuntu-Version ist...
1. Befehlseinführung Mit dem Befehl seq (Sequence...
Kürzlich hat Microsoft das Serversystem 2019 verö...
Bild-Tag : <img> Um ein Bild in eine Seite e...
Vorwort Einfach ausgedrückt ist tcpdump ein Paket...
Inhaltsverzeichnis Bereitstellung mehrerer Anwend...
Dieser Artikel stellt Jenkins+Maven+SVN+Tomcat üb...
Inhaltsverzeichnis K8S Master Grundlegende Archit...
query_cache_limit query_cache_limit gibt die Puff...
Inhaltsverzeichnis 1. Einführung in Slow Log 2. L...
Frage: Kann der Ursprungsserver keine Darstellung...