MySQL INT-Datentyp

author
4 minutes, 21 seconds Read

Zusammenfassung: In diesem Tutorial lernen Sie den MySQL INT oder Integer-Datentyp kennen und erfahren, wie Sie ihn im Design Ihrer Datenbanktabelle verwenden können. Außerdem zeigen wir Ihnen, wie Sie die Anzeigebreite und die ZEROFILL-Attribute einer Integer-Spalte verwenden können.

Einführung in den MySQL INT-Typ

In MySQL steht INT für die ganze Zahl, die eine ganze Zahl ist. Eine ganze Zahl kann ohne eine gebrochene Komponente geschrieben werden, z.B. 1, 100, 4, -10, und sie kann nicht 1,2, 5/3, usw. sein. Eine ganze Zahl kann Null, positiv und negativ sein.

MySQL unterstützt alle Standard-SQL-Ganzzahltypen INTEGER oder INT und SMALLINT. Zusätzlich bietet MySQL TINYINT MEDIUMINT und BIGINT als Erweiterungen des SQL-Standards an.

Der MySQL-Datentyp INT kann vorzeichenbehaftet und vorzeichenlos sein. Die folgende Tabelle veranschaulicht die Eigenschaften der einzelnen Integer-Typen, einschließlich der Speicherung in Bytes, des Mindest- und des Höchstwerts.

Typ Speicherplatz Minimalwert Maximalwert
(Bytes) (mit Vorzeichen/ohne Vorzeichen) (mit Vorzeichen/ohne Vorzeichen)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

MySQL INT Datentyp Beispiele

Lassen Sie uns einige Beispiele für die Verwendung von Integer-Datentypen ansehen.

A) Beispiel für die Verwendung von MySQL INT für eine Spalte

Da der Integer-Typ exakte Zahlen darstellt, wird er normalerweise als Primärschlüssel einer Tabelle verwendet. Außerdem kann die INT-Spalte ein AUTO_INCREMENT -Attribut haben.

Wenn Sie einen NULL-Wert oder 0 in die INT AUTO_INCREMENT-Spalte einfügen, wird der Wert der Spalte auf den nächsten Sequenzwert gesetzt. Beachten Sie, dass der Sequenzwert mit 1 beginnt.

Wenn Sie einen Wert, der nicht NULL oder Null ist, in die Spalte AUTO_INCREMENT einfügen, nimmt die Spalte den Wert an. Außerdem wird die Reihenfolge auf den nächsten Wert des eingefügten Wertes zurückgesetzt.

Erstellen Sie zunächst eine neue Tabelle mit dem Namen items und einer Integer-Spalte als Primärschlüssel:

Code language: SQL (Structured Query Language) (sql)

Sie können entweder INT oder INTEGER in der obigen CREATE TABLE-Anweisung verwenden, da sie austauschbar sind. Immer, wenn Sie eine neue Zeile in die Tabelle items einfügen, wird der Wert der Spalte item_id um 1 erhöht.

Die folgende INSERT-Anweisung fügt drei Zeilen in die Tabelle items ein.

Code language: SQL (Structured Query Language) (sql)

Danach werden mit der folgenden SELECT-Anweisung Daten aus der Tabelle items abgefragt:

Code language: SQL (Structured Query Language) (sql)

Danach wird eine neue Zeile eingefügt, deren Wert der Spalte item_id explizit angegeben wird.

Code language: SQL (Structured Query Language) (sql)

Da der aktuelle Wert der Spalte item_id 10 ist, wird die Reihenfolge auf 11 zurückgesetzt. Wenn Sie eine neue Zeile einfügen, wird die AUTO_INCREMENT-Spalte 11 als nächsten Wert verwenden.

Code language: SQL (Structured Query Language) (sql)

Schließlich fragen Sie die Daten der items-Tabelle erneut ab, um das Ergebnis zu sehen.

Code language: SQL (Structured Query Language) (sql)

Beachten Sie, dass die AUTO_INCREMENT-Spalte ab MySQL 5.1 nur positive Werte akzeptiert und keine negativen Werte zulässt.

B) Verwendung des MySQL INT UNSIGNED-Beispiels

Erstellen Sie zunächst eine Tabelle mit dem Namen classes, die die Spalte total_member mit dem Datentyp Ganzzahl ohne Vorzeichen enthält:

Code language: SQL (Structured Query Language) (sql)

Zweitens, fügen Sie eine neue Zeile in die Tabelle classes ein:

Code language: SQL (Structured Query Language) (sql)

Es funktioniert wie erwartet.

Dritter Versuch, einen negativen Wert in die Spalte total_member einzufügen:

Code language: SQL (Structured Query Language) (sql)

MySQL gab den folgenden Fehler aus:

Code language: SQL (Structured Query Language) (sql)

MySQL INT mit dem Attribut display width

MySQL bietet eine Erweiterung, mit der Sie die Anzeigebreite zusammen mit dem Datentyp INT angeben können. Die Anzeigebreite wird in Klammern nach dem Schlüsselwort INT angegeben, z.B. INT(5) spezifiziert eine INT mit einer Anzeigebreite von fünf Ziffern.

Es ist wichtig zu beachten, dass das Attribut display width nicht die Wertebereiche kontrolliert, die die Spalte speichern kann. Das Attribut display width wird in der Regel von den Anwendungen zur Formatierung der Integer-Werte verwendet. MySQL schließt das display width-Attribut als Metadaten der zurückgegebenen Ergebnismenge ein.

MySQL INT mit dem ZEROFILL-Attribut

Zusätzlich zum display width-Attribut bietet MySQL ein nicht standardisiertes ZEROFILL-Attribut. In diesem Fall ersetzt MySQL die Leerzeichen durch Null. Betrachten Sie das folgende Beispiel.

Erstellen Sie zunächst eine Tabelle mit dem Namen zerofill_tests:

Code language: SQL (Structured Query Language) (sql)

Zweitens, fügen Sie eine neue Zeile in die Tabelle zerofill_tests ein.

Code language: SQL (Structured Query Language) (sql)

Drittens, fragen Sie Daten aus der Tabelle zerofill_tests ab.

Code language: SQL (Structured Query Language) (sql)


Die Spaltev1hat eine Anzeigebreite von 2 einschließlichZEROFILL.Ihr Wert ist 1, daher sehen Sie01in der Ausgabe. MySQL ersetzt das erste Leerzeichen durch 0.

Die Spalte v2 hat eine Anzeigebreite von 3, einschließlich ZEROFILL. Ihr Wert ist 6, daher sehen Sie 00 als führende Nullen.

Die Spalte v3 hat die Anzeigebreite 5 mit ZEROFILL, während ihr Wert 9 ist, daher fügt MySQL 0000 am Anfang der Zahl in der Ausgabe ein.

Beachten Sie, dass, wenn Sie das ZEROFILL-Attribut für eine Integer-Spalte verwenden, MySQL automatisch ein UNSIGNED-Attribut zur Spalte hinzufügt.

In diesem Tutorium haben Sie gelernt, wie Sie den MySQL INT-Datentyp für den Entwurf von Datenbanktabellen verwenden.

  • War dieses Tutorium hilfreich?
  • JaNein

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.