Heim  >  Artikel  >  Datenbank  >  Was stellt int(11) in MYSQL dar?

Was stellt int(11) in MYSQL dar?

小云云
小云云Original
2017-12-19 16:13:262324Durchsuche

Ich habe bei der Arbeit oft mit MySQL zu tun, aber ich hatte immer ein vages Verständnis für die verschiedenen Feldtypen von MySQL. Was bedeutet int(11) in MYSQL? Sie wissen es vielleicht nicht sehr gut, deshalb habe ich diesen Artikel geschrieben, um es zusammenzufassen und aufzuzeichnen.

Was stellt int(11) in MYSQL dar?

Tatsächlich wurden einige Grundkenntnisse des int-Typs im obigen Bild sehr deutlich erklärt. Hier möchte ich die häufig verwendeten Dinge besprechen int(11)-Vertreter. Was bedeutet das? Lange Zeit dachte ich, dies bedeute, die Länge von int auf 11 Stellen zu beschränken. Erst als ich eines Tages einen Artikel las, wurde mir klar, dass 11 nicht die Länge darstellt , aber die Anzeigebreite des Zeichens Wenn der Feldtyp int ist, sind die maximalen und minimalen Werte, die der int-Typ speichern kann, unabhängig davon, wie stark Sie die Anzeigebreite festlegen, immer behoben. Hier sind einige Originaltextausschnitte

Die Zahl in der Klammer bestimmt nicht die Höchst- und Mindestwerte, die im Ganzzahlfeld gespeichert werden können Die zu speichernden Werte sind immer festgelegt.

Die Anzeigebreite der Spalte hat keinen Einfluss auf den Maximalwert, der in dieser Spalte gespeichert werden kann. Eine Spalte mit INT(5) oder INT(11) kann auch die gleichen Maximalwerte speichern. Wenn Sie eine Spalte INT(20) haben, bedeutet das nicht, dass Sie 20-stellige Werte (BIGINT-Werte) speichern können. Die Spalte speichert weiterhin nur den Maximalwert und den Minimalwert sind fest, welchen Nutzen hat diese Anzeigebreite?

Wenn der int-Feldtyp auf
Unsigned

und
Mit Nullen gefüllt (UNSIGNED ZEROFILL) eingestellt ist, werden Nullen hinzugefügt, wenn die Anzahl der Ziffern die eingestellte Anzeigebreite nicht erreicht Warum gibt es vor dem Wert ein vorzeichenloses Limit? Dies liegt daran, dass das ZEROFILL-Attribut den Wert implizit in einen vorzeichenlosen Typ konvertiert, sodass keine negativen Werte gespeichert werden können. Der folgende Code dient der konkreten Erläuterung.

Erstellen Sie zunächst eine Tabelle:

Fügen Sie zwei Datenelemente ein

CREATE TABLE int_demo (
    id INT(11) NOT NULL AUTO_INCREMENT,
    a INT(11) NOT NULL,
    b INT(11) UNSIGNED ZEROFILL NOT NULL,
    c INT(5) DEFAULT NULL,
    d INT(5) UNSIGNED ZEROFILL NOT NULL,
    e INT(15) DEFAULT NULL,
    PRIMARY KEY (`id`)
)

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);
Hinweis: Wenn Sie die Navigationssoftware zur Abfrage verwenden Es wird nicht funktionieren. Die 0 auf der linken Seite wird angezeigt, aber wenn Sie die Daten exportieren, können Sie die tatsächlichen Daten sehen. Ich vermute, dass die Software das Datenformat verarbeitet hat.
 select * from int_demo;
id a b c d e
1 1 00000000001 1 00001 1
2 1234567890 01234567890 1234567890 1234567890 1234567890
Aus dem vorherigen Beispiel können wir die folgenden Schlussfolgerungen ziehen:

Wenn ein Feld auf vorzeichenlos gesetzt und mit Nullattributen aufgefüllt ist, dann spielt es keine Rolle, in welchem ​​Wert es gespeichert ist In diesem Feld stimmt die Länge des Werts mit der eingestellten Anzeigebreite überein. Beispielsweise wird in Feld b im obigen Beispiel der eingefügte Wert 1 als 00000000001 angezeigt und links werden 10 Nullen hinzugefügt, bis die Länge 11 erreicht Ziffern;
  1. Das Festlegen der Anzeigebreite eines Feldes schränkt den Bereich der Feldspeicherwerte nicht ein, sondern die 10-stellige Zahl 1234567890 kann weiterhin gespeichert werden;
  2. Die eingestellte Breite ist nur gültig, wenn die Länge des Werts nicht mit der Breite int(5) übereinstimmt. Wenn 1 eingefügt wird, beträgt die Länge weniger als 5, sodass links 4 Nullen hinzugefügt werden, bis 5 Ziffern erreicht werden. Wenn jedoch 1234567890 eingefügt wird, hat die Anzeigebreite zu diesem Zeitpunkt keine Auswirkung.
  3. Verwandte Empfehlungen:


So nummerieren Sie automatisch die Ergebnisse von Abfragedaten im MYSQL-Methoden-Tutorial

So zeigen Sie den Speicherort von MySQL-Datendateien an

Untersuchung der MySQL-Paging-Leistung

Das obige ist der detaillierte Inhalt vonWas stellt int(11) in MYSQL dar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn