Heim >Datenbank >MySQL-Tutorial >Wie lang ist int(5) in MySQL?

Wie lang ist int(5) in MySQL?

王林
王林nach vorne
2023-06-03 23:24:141915Durchsuche

Wie lang ist int(5)?

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.

Schauen wir uns zunächst ein praktisches Beispiel an

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.

Wie lang ist int(5) in MySQL?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen