GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

MySQL-Datentypen

Einführung

MySQL-Datentypen sind wichtig zu verstehen, bevor Sie mit dem Erstellen und Arbeiten mit einer MySQL-Datenbank beginnen. Wenn Sie jede Spalte richtig zuweisen, stellen Sie sicher, dass die Datenbank optimiert und Daten sicher gespeichert werden.

In diesem Tutorial lernen Sie die verschiedenen MySQL-Datentypen kennen.

Was sind Datentypen in MySQL?

Ein Name und ein Datentyp definieren jede Spalte in einer Datenbanktabelle. Der angegebene Datentyp teilt MySQL mit, welche Art von Werten gespeichert werden, wie viel Speicherplatz sie benötigen und welche Art von Operationen es mit diesem Datentyp ausführen kann.

MySQL-Datentypen

Es gibt viele verschiedene Datentypen, die Sie in einer MySQL-Tabelle speichern können.

Sie sind in fünf Hauptkategorien eingeteilt:

  1. Numerische Datentypen
  2. Datentypen für Datum und Uhrzeit
  3. String-Datentypen
  4. Räumliche Datentypen
  5. JSON-Datentypen

Lesen Sie weiter, um mehr über die einzelnen Gruppen zu erfahren und zu sehen, welche Datentypen sie enthalten.

Numerische Datentypen

Verwenden Sie beim Speichern von Zahlen in einer Datenbankspalte einen der numerischen Datentypen. MySQL unterstützt sowohl exakte als auch ungefähre numerische Datentypen.

Die numerische Kategorie wird weiter in die folgenden Gruppen unterteilt:

  • Integer-Datentypen
  • Fließkomma-Datentypen
  • Festkomma-Datentypen
  • Bit-Wert-Datentypen

Integer-Typen

Integer-Datentypen werden für ganze Zahlen (Integer) verwendet. Sie umfassen sowohl positive als auch negative Werte. Sie verarbeiten jedoch keine Bruchzahlen.

Daher können Zahlen wie 30 und -5435 als ganzzahlige Datentypen gespeichert werden, während 5,3 oder 1/5 dies nicht können.

Ganzzahltypen sind vorzeichenbehaftet oder vorzeichenlos. Sie werden basierend auf ihrer Größe weiter unterteilt, wobei sie sich durch ihre Länge und Reichweite unterscheiden.

Byte Bereich (unsigned) Bereich (vorzeichenbehaftet)
TINYINT 1 von 0 bis 255 von -128 bis 127
SMALLINT 2 von 0 bis 65535 von -32768 bis 32767
MEDIUMINT 3 von 0 bis 16777215 von -8388608 bis 8388607
INT 4 von 0 bis 4294967295 von -2147483648 bis 2147483647
GROSS 8 von 0 bis 18446744073709551615 von -9223372036854775808 bis 9223372036854775807

TINYINT ist eine sehr kleine Ganzzahl, die 1 Byte verwendet der Lagerung. Sie besteht aus bis zu 4 Ziffern . Sein vorzeichenloser Bereich reicht von 0 bis 255 . Wenn es signiert ist, hat es einen Bereich von -128 bis 127 .

SMALLINT ist eine kleine Ganzzahl, die 2 Bytes verwendet der Lagerung. Sie besteht aus bis zu 5 Ziffern . Sein vorzeichenloser Bereich reicht von 0 bis 65535 . Wenn es signiert ist, hat es einen Bereich von -32768 bis 32767 .

MEDIUMINT ist eine mittelgroße Ganzzahl, die 3 Bytes verwendet der Lagerung. Es hat bis zu 9 Stellen . Wenn es nicht signiert ist, hat es einen Bereich von 0 bis 16777215 . Signiert, sein Mindestwert ist -8388608 , während sein Maximalwert 8388607 ist .

INT ist eine ganze Zahl, die 4 Bytes verwendet der Lagerung. Es verwendet bis zu 11 Ziffern . Wenn es nicht signiert ist, reicht es von 0 an 4294967295 . Wenn es signiert ist, hat es den Bereich von -2147483648 an 2147483647 .

BIGINT ist eine große Ganzzahl, die 8 Bytes verwendet der Lagerung. Es hat bis zu 20 Stellen . Sein minimaler vorzeichenbehafteter Wert ist 0 , während sein maximaler vorzeichenbehafteter Wert 18446744073709551615 ist . Wenn es signiert ist, hat es den Bereich von -9223372036854775808 an 9223372036854775807 .

Gleitkommatypen

Numerische Fließkomma-Datentypen sind rationale Zahlen, die zur Darstellung von Näherungswerten verwendet werden. Verwenden Sie Fließkomma-Datentypen für hochpräzise Berechnungen.

Zu den Fließkommatypen gehören:

  • FLOAT stellt Werte mit einfacher Genauigkeit dar, die 4 Bytes verwenden und umfassen bis zu 6 oder 7 signifikante Ziffern.
  • DOUBLE stellen Werte mit doppelter Genauigkeit dar, die 8 Bytes verwenden und umfassen bis zu 15 oder 16 signifikante Ziffern.

Die grundlegende Syntax zum Definieren von FLOAT /DOUBLE Datentypen ist FLOAT(M,D) /DOUBLE(M,D) .

M stellt die Gesamtzahl der Ziffern dar, während D ist die Anzahl der Dezimalstellen. Zum Beispiel der Wert 5143.234 würde als 7,3 definiert werden da es insgesamt 7 Stellen und 3 Stellen nach dem Komma hat.

Sie können auch FLOAT(P) verwenden Syntax, um einen Fließkommadatentyp anzugeben, wobei P gibt die Genauigkeit an. Wenn P hat einen Wert von 0 bis 23 , ist es eine Spalte mit einfacher Genauigkeit. Wenn die Genauigkeit zwischen 24 und 53 liegt , es ist eine Spalte mit doppelter Genauigkeit.

Bytes Bereich (unsigned) Bereich (vorzeichenbehaftet)
FLOAT 4 von 1.175494351E-38 bis 3.402823466E+38 von -3.402823466E+38 bis -1.175494351E-38
DOPPELT 8 von 0 und 2.22507385850720 14E- 308 bis 1.797693134862315 7E+ 308 von -1.7976931348623 157E+ 308 bis -2.22507385850720 14E- 308

Festkommatypen

Um exakte numerische Werte zu speichern, verwenden Sie den Festkomma-Datentyp – DECIMAL . Da es sich um eine genaue Zahl handelt, wird dieser Datentyp hauptsächlich für Daten verwendet, die auf genauen Werten beruhen (z. B. monetäre Daten).

Die grundlegende Syntax ist DECIMAL(P,D) , wobei P steht für Präzision (die Anzahl signifikanter Stellen) und D steht für Skala (die Anzahl der Nachkommastellen).

Die maximale Anzahl von Stellen für die Genauigkeit beträgt 65 , während der maximale Wert für scale 30 ist .

Wenn Sie die Genauigkeit und den Maßstab nicht definieren, verwendet die Spalte Standardwerte. Standardmäßig sind die Werte für P,D 10,0 .

Bitwerttypen

Das BIT Datentyp speichert binäre Werte. Beim Erstellen einer Spalte, die solche Werte speichert, definieren Sie die Anzahl der Bitwerte im Bereich von 1 bis 64 .

Die Syntax für diesen MySQL-Datentyp ist BIT(N) . Wenn Sie N nicht angeben , der Standardwert ist 1 .

Datentypen für Datum und Uhrzeit

Datum und Uhrzeit sind häufig verwendete Datentypen. Ob Sie eine Uhrzeit einer Dateneingabe, ein Geburtsdatum oder den aktuellen Zeitstempel speichern, Sie verwenden eine der folgenden Spalten.

Zu den Datentypen für Datum und Uhrzeit gehören:

  • DATETIME , TIMESTAMP
  • DATE
  • TIME
  • YEAR

DATETIME, TIMESTAMP

Verwenden Sie zum Speichern von Datums- und Uhrzeitwerten entweder DATETIME oder TIMESTAMP . Beide Datentypen speichern Informationen im YYYY-MM-DD HH:MM:SS Format. Es enthält das y Ohr, m onth, d ja, h unser, m Eingaben und s Sekunden.

Der Hauptunterschied zwischen den beiden ist ihre Reichweite:

  • DATETIME Werte reichen von 1000-01-01 00:00:00 bis 9999-12-31 23:59:59 .
  • TIMESTAMP Werte reichen von 1970-01-01 00:00:01 bis 2038-01-19 03:14:07 .

Sie können für beide Optionen Bruchteile von Sekunden angeben. Geben Sie dazu die Genauigkeit nach der Syntax DATETIME(p) an /TIMESTAMP(p) .

Zum Beispiel, um den Zeitstempel 22:53 Uhr am 1. März 2021 zu speichern , mit drei Sekundenbruchteilen, geben Sie den Datentyp TIMESTAMP(3) an . Der Eintrag wird gespeichert als:2021-03-01 22:53:35.346 .

DATUM

DATE wird zum Speichern von Datumswerten im Format JJJJ-MM-TT verwendet (Jahr, Monat, Datum).

Der Datentyp unterstützt den Bereich 1000-01-01 bis 9999-12-31 .

ZEIT

TIME wird verwendet, um Zeitwerte im Format HH-MM-SS zu speichern (Stunden, Minuten, Sekunden) oder HHH-MM-SS . Einträge, die verstrichene Zeit oder Zeitunterschiede anzeigen, werden in einem längeren Format gespeichert und abgerufen (wenn sie mehr Stellen für Stunden benötigen).

Der Datentyp unterstützt den Bereich 1000-01-01 bis 9999-12-31 .

JAHR

YEAR speichert Jahreswerte im Format YYYY . Es unterstützt Werte im Bereich 1901-2155 .

Während ältere Versionen als MySQL 5.7.5 sowohl 2- als auch 4-stellige Einträge für YEAR unterstützten , gibt es seit Version 5.7.5 keine zweistellige Unterstützung mehr.

String-Datentypen

Verwenden Sie beim Speichern von Datenstrings einen der String-Datentypen. Sie können Buchstaben, Zahlen, Bilder oder Dateien enthalten.

Dementsprechend gibt es mehrere verschiedene String-Datentypen:

  • CHAR und VARCHAR
  • BINARY und VARBINARY
  • BLOB und TEXT
  • ENUM
  • SET

CHAR und VARCHAR

CHAR und VARCHAR sind Datentypen, die zum Speichern von nicht-binären Zeichenfolgen verwendet werden. Der Hauptunterschied zwischen den beiden besteht darin, wie sie Daten speichern.

CHAR speichert Zeichenfolgen fester Länge (bis zu 255 Figuren). Beim Erstellen eines CHAR Spalte geben Sie die Länge mit CHAR(N) an Syntax. N ist die Anzahl der Zeichen, die Sie aufnehmen möchten. Wenn Sie die Länge nicht definieren, wird der Standardwert 1 verwendet .

Diese Werte werden rechts aufgefüllt mit der angegebenen Länge gespeichert. Wenn Sie also ein CHAR(5) einrichten -Spalte und speichern Sie einen dreistelligen Eintrag darin, es nimmt immer noch fünf Zeichen ein.

VARCHAR speichert Zeichenfolgen variabler Länge. Während die Länge beim Erstellen einer Spalte definiert werden muss, werden die Werte nicht rechts aufgefüllt. Sie haben eine maximale Grenze, aber die Länge ist nicht festgelegt und variiert je nach Daten.

Zuvor war der Bereich für Einträge von 0 bis 255 . Nach der Veröffentlichung von MySQL 5.0.3 wird VARCHAR Bereich ist bis zu 65.535 Zeichen .

BINARY und VARBINARY

BINARY und VARBINARY Datentypen ähneln dem zuvor erwähnten CHAR und VARCHAR . Der Hauptunterschied zwischen diesen beiden Gruppen besteht darin, dass BINARY und VARBINARY werden für binäre Zeichenfolgen verwendet.

BINARY wird für binäre Zeichenfolgen mit fester Länge bis zu 255 Byte verwendet . Die Hauptsyntax zum Definieren einer solchen Spalte ist BINARY(N) , wobei N ist die Anzahl der Bytes.

VARBINARY speichert binäre Zeichenfolgen variabler Länge. MySQL-Version 5.0.3 und neuer speichert bis zu 65.535 Byte .

BLOB und TEXT

Beide BLOB und TEXT werden verwendet, um große Datenmengen zu speichern.

BLOB behandelt B inary L großes O Objekte (d. h. große Sätze binärer Daten wie Bilder, Audio- oder PDF-Dateien).

Es gibt 4 Arten von BLOB-Datentypen, die verwendet werden können, abhängig von der Größe, die Ihre Daten erfordern:

  • TINYBLOB (0 – 255; 255 Byte)
  • BLOB (0 – 65.535; 16 KB)
  • MEDIUMBLOB (0 – 16.777.215; 16 MB)
  • LONGBLOB (0 – 4.294.967.295; 4 GB)

TEXT Datentypen dienen zum Speichern längerer Textfolgen. Je nach benötigter Datenmenge gibt es:

  • TINYTEXT (0 – 255; 255 Byte)
  • TEXT (0 – 65.535; 16 KB)
  • MEDIUMTEXT (0 – 16.777.215; 16 MB)
  • LONGTEXT (0 – 4.294.967.295; 4 GB)

ENUM

Die ENUM Datentyp wird verwendet, um einen der vordefinierten möglichen Werte in einer Spalte zu speichern. Die Spalte kann bis zu 65535 enthalten unterschiedliche Werte.

Beim Erstellen einer ENUM Tabellenspalte in MySQL geben Sie eine Liste aller zulässigen Werte an.

EINSTELLEN

Wie ENUM , das SET Der Datentyp hat eine vordefinierte Liste möglicher Werte, die in der Spalte gespeichert sind.

Der Hauptunterschied zwischen den beiden ist das SET erlaubt einem Eintrag, mehr als einen Wert zu haben.

Wenn die Spalte beispielsweise als SET('Red','Orange','Yellow','Green') definiert ist und vier mögliche Werte in der Liste hat, könnte ein Eintrag den Wert ‘Rot’ haben , während ein anderer den Wert ‘Red’,’Yellow’ haben könnte .

Die maximale Anzahl zulässiger Werte ist 64 .

Räumliche Datentypen

Beim Speichern räumlicher Daten können Sie einen der vielen verschiedenen räumlichen Datentypen verwenden, die MySQL unterstützt. Sie werden verwendet, um Informationen über geometrische Formen und den physischen Standort darzustellen.

Wir können sie in zwei Gruppen einteilen:

  • Einzelne Geometriewerte
  • Sammlungen von Werten

Einzelne Geometriewerte

Einzelne Geometriedatentypen umfassen GEOMETRY , POINT , LINESTRING und POLYGON .

  • GEOMETRY speichert jede Art von Geometrie-/räumlichen Werten.
  • POINT wird für einen einzelnen Punktwert verwendet.
  • LINESTRING speichert eine Sammlung mehrerer Punkte, die eine Linie bilden.
  • POLYGON ist ein Datentyp, der verwendet wird, um eine Sammlung mehrerer Punkte zu speichern, die eine polygonale Oberfläche bilden.

Sammlung von Werten

Zu den Datentypen für Sammlungen von Werten gehört GEOMETRYCOLLECTION , MULTIPOINT , MULTILINE , und MULTIPOLYGON .

  • GEOMETRYCOLLECTION speichert eine Sammlung von geometrischen/räumlichen Werten.
  • MULTIPOINT wird zum Speichern einer Sammlung von mehreren Punktwerten verwendet.
  • MULTILINE speichert eine Sammlung mehrerer Zeilen.
  • MULTIPOLYGON wird für eine Sammlung mehrerer Polygone verwendet.

JSON-Datentypen

Seit Version 5.7.8 enthält MySQL Unterstützung für das native JSON Datentyp, mit dem Benutzer JSON-Dokumente über eine Datenbank speichern und verwalten können.

MySQL stellt sicher, dass die JSON-Dokumente gültig sind und speichert sie in der JSON-Spalte.


Cent OS
  1. MySQL – Konvertieren in Tabellendaten für InnoDB

  2. Zeigen Sie MySQL-Datenbanktypen in Bash an

  3. Verbessern Sie die Geschwindigkeit des MySQL-Imports

  4. Übertragen Sie Daten in einen MySQL-Container

  5. Aktivieren von LOAD DATA LOCAL INFILE in mysql

So benennen Sie eine Spalte in MySQL um

So löschen Sie eine Tabelle in MySQL

Python-Datentypen {umfassende Übersicht}

Was ist Datenreplikation? {Replikationstypen und Schemas erklärt}

Installieren Sie MySQL auf CentOS 7

PHP MySQL Select-Daten