Bedeutet int(5) beim Entwerfen von MySQL-Tabellenfeldern, dass die Länge des Feldes 5 beträgt?
Wenn Sie so denken, dann lesen Sie bitte weiter, ich glaube, Sie werden etwas Neues gewinnen.
Wir erstellen eine neue Tabelle mit nur einer Primärschlüssel-ID und einem Längenfeld, wobei das Längenfeld auf int(5) gesetzt ist.
#新建test表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `length` int(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Stimmt es, dass das Längenfeld nur Zahlen mit einer Länge von nicht mehr als 5 speichern kann? Versuchen wir, ein Datenelement einzufügen.
Wir fügen ein größeres Datenelement 123456789 ein. Diese Daten bestehen aus insgesamt 9 Ziffern, um zu prüfen, ob sie normal eingefügt werden können.
#插入一条大数据 insert into test (length) values (123456789);
Es stellt sich heraus, dass int(5) Daten mit einer Länge von mehr als 5 einfügen kann, sodass jetzt sicher ist, dass int(5) nicht die Breite der Daten darstellt.
#查看插入数据 mysql> select * from test; +------------+-----------+ | id | length | +------------+-----------+ | 1 | 123456789 | +------------+-----------+
In MySQL ist die Länge des int-Feldes tatsächlich auf 4 Bytes festgelegt. Unabhängig davon, ob Sie int(11) oder int(5) verwenden, ist die Länge des Feldes auf 4 Bytes festgelegt.
int(5) wird tatsächlich in Verbindung mit einem anderen Attribut „Zerofill“ verwendet, was bedeutet, dass, wenn die Breite des Feldwerts kleiner als 5 ist, dieser automatisch mit 0 aufgefüllt wird, wenn die Breite größer oder gleich ist bis 5 ist es nicht erforderlich, 0 aufzufüllen.
#int(5) length 字段添加了 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 00888 | | 2 | 00012 | | 3 | 12345 | | 4 | 123456 | +----+--------+
Beachten Sie, dass das Zerofill-Attribut zu diesem Feld hinzugefügt werden muss, sonst funktioniert int(5) nicht.
#int(5) length 字段没有 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 888 | | 2 | 12 | | 3 | 12345 | | 4 | 123456 | +----+--------+
Wenn Sie die Länge eines Integer-Feldes festlegen möchten, sollten Sie die folgenden Typen auswählen: tinyint, smallint, mediumint, int, bigint. Die spezifischen Längen finden Sie in der Tabelle unten.
Beachten Sie, dass das Zerofill-Attribut nicht unterstützt wird und automatisch in 0 konvertiert wird, wenn Sie vorzeichenbehaftete Ganzzahlen speichern möchten. Dies muss in einigen Unternehmen mit Dekrementierung berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie lang ist int(5) in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!