Detaillierte Erklärung der Prinzipien und der Verwendung von MySQL-Datentypen und Feldattributen

Detaillierte Erklärung der Prinzipien und der Verwendung von MySQL-Datentypen und Feldattributen

Dieser Artikel beschreibt die MySQL-Datentypen und Feldattribute. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

In diesem Artikel:

  • Datentypen
    • Numerische Typen
      • Ganze Zahl
      • Gleitkomma
      • Festkommatyp
    • Datums- und Uhrzeittypen
    • Zeichenfolgentyp
    • Auffüllen:
      • Anzeigebreite und Nullfüllmenge
      • Datensatzlänge
  • Feldeigenschaften
    • Leerer\Nicht leerer Wert: NULL, NICHT NULL
    • Primärschlüssel
    • eindeutiger Schlüssel: eindeutiger Schlüssel
    • Selbstwachstum: auto_increment
    • Standardwert: default
    • Feldbeschreibung: Kommentar
    • Auffüllen:
      • Zusammengesetzter Schlüssel

Veröffentlichungsdatum: 08.04.2018


Datentyp:

Der Datentyp von MySQL ist der Typ der gespeicherten Daten.

Numerischer Typ:

  • Ganzzahltypen: tinyint, smallint, mediumint, integer, bigint
    • Der Standardwert ist signiert. Wenn Sie einen unsignierten Datentyp verwenden müssen, fügen Sie am Ende „UNSIGNED“ hinzu.
Typ Abkürzung Byte-Größe (vorzeichenbehafteter) Bereich (unsigniert) Bereich Bemerkung
Integer-Typ:
TINYINT 1 0~255 -128~127
SMALLINT 2 0~65535 -32768~32767
MITTELINT 3 0~16777215 -8388608~8388607
GANZE ZAHL INT 4 0~4294967295 -2147483648~2147483647
BIGINT 8 0~2 64 -1 -2 63 ~2 63 -1
  • Dezimaltyp:
    • Gleitkommatyp: float(size,d), double(size,d)
      • Größe ist die maximale Anzahl von Ziffern im Wert und d ist die Anzahl der Ziffern rechts vom Dezimalpunkt (auch wenn Sie nicht so viele Ziffern eingeben, werden diese ausgefüllt).
      • Die Genauigkeit von FLOAT beträgt 6 bis 7 Ziffern (je nach Situation? Schließlich speichert die Maschine im Binärformat) und die Genauigkeit von DOUBLE beträgt 14 bis 15 Ziffern.
      • Die Anzahl der ganzzahligen Teile ist SIZE-D. Die Anzahl der direkt gespeicherten Werte kann nicht höher sein. Wenn jedoch die Gleitkommazahl gerundet wird und die Ganzzahl überläuft und die maximale Anzahl von Ziffern überschreitet, lässt das System dies zu (einige Versionen scheinen dies nicht mehr zuzulassen, daher sollte die Anzahl der Dezimalstellen dies im Allgemeinen nicht überschreiten).
      • Oftmals müssen Sie bei zwei Gleitkommazahlen nicht auf den Wertebereich achten (der extrem groß ist), aber auf die Genauigkeit sollten Sie achten.
      • imageimage
    • Festkommatyp: decimal(size,d)
      • Größe ist die maximale Anzahl von Ziffern in einem Wert, die bis zu 65 betragen kann , und d ist die maximale Anzahl von Ziffern rechts vom Dezimalkomma, die bis zu 30 betragen kann .
      • Bei Festkommatypen ist es aufgrund der Rundung des Dezimalteils nicht möglich, dass der ganzzahlige Teil den Bereich überschreitet.
      • DECIMAL verliert nicht an Genauigkeit. Es kann als Verwendung von „String“-Speicher verstanden werden (das steht so im maßgeblichen MySQL-Handbuch).
      • image
    • Die Datentypen Float, Double und Decimal ohne Klammern stellen keinen Dezimalteil dar.

Datums- und Uhrzeittyp:

Zu den Datums- und Zeittypen gehören Datum, Uhrzeit, Datum/Uhrzeit, Zeitstempel, Jahr;

  • Datetime: Uhrzeit und Datum, das Format ist JJJJ-MM-TT HH:II:SS, der Bereich reicht von 1000 bis 9999 (einige Versionen erlauben bereits 0-9999? Nicht sicher);
    • image
  • Datum: Datum, das Format ist JJJJ-MM-TT, der Bereich reicht von 1000 bis 9999
    • image
  • Zeit: Zeitspanne, das Format ist HH:II:SS, die angegebene Zeit liegt innerhalb eines bestimmten Intervalls, sie kann positiv oder negativ sein. Der Bereich von -838:59:59 ~ 838:59:59, der den Zeitraum vor und nach einem bestimmten Datum darstellt [wenn Sie ihn nur zur Darstellung der Zeit innerhalb von 24 Stunden verwenden möchten, können Sie seinen Zeitraum ignorieren]
    • image
  • Zeitstempel: Das Format ist JJJJ-MM-TT HH:II:SS und reicht vom 1.1.1970 00:00:00 bis zum 19.1.2038 03:14:07. [Sobald der Zeilendatensatz geändert wird, wird der Zeitstempel auf die aktuelle Zeit geändert. 】
    • image
  • Jahr: Jahr, der Bereich ist 1901-2156
    • image
    • Ursprünglich gab es zwei Formate, year(2) und year(4), aber year(2) wurde in 5.7 entfernt.

    Zeichenfolgentyp:

      • set: Zeichenfolge festlegen. Fügen Sie der Sammlung bestimmte Zeichenfolgen hinzu.

        • Nachdem ein Set definiert wurde, können Sie keine Zeichenfolgen außerhalb der Set-Elemente einfügen (Sie können mehrere Zeichenfolgen einfügen, die die Bedingungen erfüllen).
        • Tatsächlich werden in der Collection String lediglich Zahlenwerte gespeichert, die vom System automatisch in entsprechende Strings umgewandelt werden.
        • Jedes Element im Satz entspricht einem binären Bit. Das ausgewählte Bit ist 1, das nicht ausgewählte Bit ist 0. Die linke Seite ist das niedrigste Bit im Binärwert, die rechte Seite das höchste Bit. Das binäre Ergebnis wird von rechts nach links erhalten.
    Tabelle my_set erstellen(
    Hobby-Set ('Fußball', 'Basketball', 'Tischtennis', 'Computer')
    )Zeichensatz utf8;
    
    in my_set-Werte einfügen('Basketball, Computer');
    in my_set values(3) einfügen;-- 3=0011
    in my_set values(5) einfügen;-- 5=0101 

    image

      • enum : Aufzählungszeichenfolge

        • Es ähnelt einem Set, aber hier kann nur eine Zeichenfolge eingefügt werden (der Wert eines Felds vom Typ Set kann aus mehreren Set-Elementen bestehen, Enumeration kann jedoch nur eines davon sein).
        • Listen Sie die möglichen Daten auf. Die tatsächlich gespeicherten Daten können nur die aufgelisteten Daten sein.
        • Die Verwendung von Aufzählungen hilft, Daten zu vereinheitlichen und Speicherplatz zu sparen (Aufzählungen speichern nur numerische Werte, die vom System in Zeichenfolgen umgewandelt werden).
        • Die Aufzählungselemente werden tatsächlich in der Reihenfolge nummeriert, in der sie definiert werden, beginnend bei 1, sodass Sie den dem Aufzählungselement entsprechenden numerischen Wert direkt einfügen können.
        • wie:
    Tabelle my_enum erstellen(
    Geschlecht Aufzählung('männlich','weiblich','unbekannt')
    )Zeichensatz utf8; 

    image

    • Blob: binäre Datenzeichenfolge

      • Binäre Daten speichern (selten verwendet)
    • text: Textzeichenfolge

      • Zum Speichern von Text wird im Allgemeinen Text verwendet, wenn die Anzahl der Zeichen größer als 255 ist.
    • varchar: Zeichenfolge mit variabler Länge

      • varchar(L), L stellt die Zeichenlänge dar, die Einheit ist Zeichen und die maximale Länge beträgt 65536. Im tatsächlichen Speicher sind 1 bis 2 Bytes erforderlich, um die Länge zu speichern (1 oder 2 wird durch die tatsächliche Größe bestimmt, 2 16 = 35536, im Allgemeinen ein Byte, wenn <= 255). Bei Verwendung wird der Speicherplatz entsprechend der definierten Größe zugewiesen, der Speicherplatz wird jedoch entsprechend dem tatsächlichen Bedarf reduziert (wenn beispielsweise die angegebene Größe 60 beträgt, die tatsächliche Größe jedoch nur 30 beträgt, beträgt der tatsächliche Speicherplatz 31 bis 32).
      • Wenn L größer als 255 ist, wird empfohlen, Text statt varchar zu verwenden.
      • image_thumb1
    • char: Zeichenfolge mit fester Länge

      • char (L), L stellt die Zeichenlänge dar, die Einheit ist Zeichen, die maximale Länge beträgt 255 und der Standardwert ist 1, wenn L nicht verwendet wird
      • Der tatsächlich von Zeichen in verschiedenen Umgebungen belegte Platz variiert je nach Zeichengröße. In der UTF8-Umgebung beträgt die von char(4) belegte Byteanzahl 4*3=12.

    Auffüllen:

      • Anzeigebreite und Abstand:

        • Der nach dem Spaltentyp angezeigte Wert stellt die Mindestanzahl an Ziffern (einschließlich Vorzeichen) dar, die die Daten letztendlich anzeigen.
        • Im Allgemeinen werden Daten, die nicht groß genug zum Anzeigen sind, mit Leerzeichen aufgefüllt. Sie können auch Zerofill verwenden, um sie mit Nullen aufzufüllen (durch das Auffüllen mit Nullen wird der Datentyp automatisch vorzeichenlos).
        • Tiny(3) Raumpolstereffekt: image , Zerofill-Effekt: image
    Tabelle erstellen myInt(t1 TINYINT(3));
    Tabelle myInt löschen;
    in myInt-Werte einfügen (127), (1);
    wähle * aus myInt;
    Tabelle myInt ändern, t1 tinyint(3) mit Nullen füllen;
    wähle * aus myInt;
    • Verwenden Sie die maximale Größe nicht zum einfachen Speichern von Zeichenfolgen, da es Probleme mit der Datensatzlänge gibt:

      • MySQL legt fest, dass Daten nicht größer als 65.535 Byte sein dürfen.
      • Wenn ein beliebiges Feld Null zulässt, speichert das System automatisch ein Byte aus dem gesamten Datensatz, um NULL zu speichern.
      • Text nimmt nicht die gesamte Datensatzlänge ein und wird zusätzlich gespeichert.
      • Die maximale Grenze für varchar in UTF8 beträgt: 65535-2 (erfordert zwei Bytes zum Speichern der Länge) / 3 = 21844, daher beträgt die maximale Anzahl von Zeichen 21844
      • Die maximale Grenze von varchar in GBK: 65535-2 (zum Speichern der Länge sind zwei Bytes erforderlich) /2=32766

    Feldeigenschaften:

    Feldattribute sind die Attribute eines Felds, die sich vom Datentyp unterscheiden. Dazu gehören im Allgemeinen leerer/nicht leerer Wert, Primärschlüssel, eindeutiger Schlüssel, Auto-Inkrement, Standardwert, Beschreibung und andere Attribute.

    Leerer\Nicht leerer Wert: NULL, NICHT NULL

    • Standardmäßig dürfen die Daten in einem Feld leer sein. Beispielsweise kann der Datensatz einer Person keine E-Mail-Adresse enthalten (manche Leute würden vielleicht eine „leere Zeichenfolge“ verwenden, um sie darzustellen). Wir erlauben, dass Felder, die nicht ausgefüllt werden müssen, auf null gesetzt werden. Wenn wir jedoch beispielsweise einige erforderliche Daten nicht ausfüllen und das Feld leer lassen möchten, können wir dieses Feld auf unnull setzen.
    • Leere Daten sind zulässig und leere Daten werden als Null angezeigt: image
    • Beim Einfügen von null in ein nicht leeres Feld wird ein Fehler gemeldet: image
    • So definieren Sie Null\Nicht-Null-Attribute (da Null standardmäßig zulässig ist, konzentrieren wir uns hauptsächlich auf Nicht-Null): image ; Natürlich können Sie das Attribut „nicht null“ für das Feld auch definieren, indem Sie das Feldformat ändern

    Primärschlüssel

    • Der Primärschlüssel dient zur eindeutigen Identifizierung jedes Datensatzes (jeder hat seinen eigenen eindeutigen Personalausweis).
    • Jede Tabelle kann nur einen Primärschlüssel haben.
    • Da es sich um eine eindeutige Kennung handelt, dürfen die Daten im Primärschlüsselfeld nicht leer sein und der Datenwert des Primärschlüsselfelds darf nicht wiederholt werden.
    • Der Primärschlüssel ist gleichzeitig ein Index, der die Suchgeschwindigkeit erhöhen kann.
    • Definition des Primärschlüssels:
      • 1. Definieren Sie es beim Definieren der Tabellenstruktur als Attribute des Felds. imageimage
      • 2. Ändern Sie die Tabellenstruktur und fügen Sie ein Feld mit einem Primärschlüssel hinzu.
      • 3. Ändern Sie die Tabellenstruktur und fügen Sie einem Feld ein Primärschlüsselattribut hinzu. image
    • Zweck des Primärschlüssels: Der Hauptzweck des Primärschlüssels besteht darin, jeden Datensatz eindeutig zu identifizieren. Wenn wir beispielsweise die Viele-zu-viele-Beziehung zwischen zwei Tabellen (Schülertabelle und Lehrertabelle) in einer Tabelle zusammenfassen möchten, sind die extrahierten Zuordnungsfelder im Allgemeinen ihre jeweiligen Primärschlüssel. image ; und da die Primärschlüsseldaten nicht wiederholbar sind, werden sie auch verwendet, um die Eindeutigkeit der Daten einzuschränken.
    • Löschen des Primärschlüssels:
      Tabelle ändern, Tabellenname, Primärschlüssel löschen;

    eindeutiger Schlüssel: eindeutiger Schlüssel

    • Die Funktion eines eindeutigen Schlüssels ähnelt der eines Primärschlüssels. Der Unterschied besteht jedoch darin, dass es nur einen Primärschlüssel geben kann, während mehrere eindeutige Schlüssel vorhanden sein können und die Daten im Feld des eindeutigen Schlüssels leer sein dürfen.
    • Der eindeutige Schlüssel kann das Feld so einschränken, dass die Daten im Feld nicht wiederholt werden können.
    • Wenn der eindeutige Schlüssel ebenfalls ungleich null ist und in der Tabelle kein Primärschlüssel vorhanden ist, wird dieser in der Beschreibungstabellenstruktur als Primärschlüssel angezeigt.
    • Wenn der eindeutige Schlüssel keine Nullen zulässt, ist die Funktion identisch mit der des Primärschlüssels.
    • Die Definitionsmethode des eindeutigen Schlüssels kann sich auf den Primärschlüssel beziehen.
    • Löschung des eindeutigen Schlüssels:
      alter table table name drop index unique key name; – Der eindeutige Schlüssel verwendet standardmäßig den Feldnamen, um den Namen zu definieren.

    Selbstwachstum: auto_increment

    • Die Funktion der automatischen Inkrementierung besteht darin, die Daten eines Felds beim Einfügen von Datensätzen zu vergrößern (ohne Daten in dieses Feld einzufügen).
    • Die Voraussetzung der Selbstinkrementierung ist, dass dieses Feld ein „Index“ sein muss, beispielsweise ein Primärschlüssel oder ein eindeutiger Schlüssel.
    • Die Voraussetzung für die Selbstinkrementierung ist, dass der Datentyp dieses Felds ein numerischer Typ ist. (Wenn Float angegeben ist, wird es nicht zu einer Dezimalzahl, sondern nur zu einer Ganzzahl.)
    • Eine Tabelle kann nur eine automatische Inkrementierung haben.
    • Nur wenn kein Wert oder Null angegeben ist, kann das Feld automatisch korrekt erhöht werden. Wenn eine bestimmte Selbstinkrementierung fehlschlägt, wird das Feld beim nächsten Mal weiterhin automatisch vom Maximalwert des aktuellen Felds erhöht.
    • So definieren Sie automatisches Wachstum: image ; Natürlich können Sie das Attribut „nicht null“ für das Feld auch definieren, indem Sie das Feldformat ändern
    • Änderungen am automatischen Wachstum:
      • Ändern Sie die Wachstumsrate: Setzen Sie auto_increment = Wert;
      • Ändern Sie den Wert der nächsten Erhöhung: alter table table name auto_increment = value; [Der geänderte Wert kann nur erhöht, nicht verringert werden, da dies zu Datenduplizierungsproblemen führen kann]
    • Auto-Inkrement anzeigen: Variable wie „auto_increment%“ anzeigen;
    • Löschen der Selbstinkrementierung: Verwenden Sie „alter“ zum Löschen. Wenn „alter“ die Feldattribute ändert und die ursprünglichen Attribute nicht enthalten sind, werden sie gelöscht:

    Standardwert: default

    • Die Funktion des Standardwerts besteht darin, den Standardwert als Daten zu verwenden, wenn wir einem Feld keinen Wert zuweisen. Wenn beispielsweise das Geschlecht nicht ausgewählt ist, wird standardmäßig „vertraulich“ verwendet.
    • Der Standardwert ist wie folgt definiert: image
    • image

    Feldbeschreibung: Kommentar

    • Die Feldbeschreibung wird zur Beschreibung des Felds verwendet. Sie kann beim Anzeigen der Anweisung zur Datentabellenerstellung angezeigt werden (sie wird nicht im Auswahlergebnis angezeigt), was uns dabei helfen kann, die Bedeutung eines bestimmten Felds zu verstehen.
    • Definition: image
    • image

    Auffüllen:

    • Zusammengesetzter Schlüssel: Mehrere Felder können zu einem Schlüssel kombiniert werden. Ein Student kann beispielsweise mehrere Kurse belegen, aber die Studenten-ID und die Kurs-ID sollten in Kombination eindeutig sein. Hier wird der Primärschlüssel verwendet, um diese Situation einzuschränken.
      • Definitionsmethode (Composite verwendet Primärschlüssel als Beispiel): image
      • Datenbeschränkungen (am Beispiel der obigen Tabelle): image

    Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“.

    Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

    Das könnte Sie auch interessieren:
    • Vollständige Analyse der MySQL-Datentypen
    • MySQL-Hinweise: Detaillierte Erklärung der Datentypen
    • MySQL-Datentypen erklärt
    • Detaillierte Erläuterung der MySql-Datentyp-Tutorialbeispiele

    <<:  Bauprozess eines privaten Docker-Lagerhafens

    >>:  JavaScript zum Erreichen der Produktabfragefunktion

    Artikel empfehlen

    Mehrere Methoden zum Löschen von Floating (empfohlen)

    1. Fügen Sie ein leeres Element desselben Typs hi...

    Einführung in die Farbabstimmung von Königsblau für Webdesign

    Klassische Farbkombinationen vermitteln Kraft und ...

    Verwendung des HTML-H-Titel-Tags

    Die Verwendung von H-Tags, insbesondere h1, war sc...

    Tutorial zu HTML-Tabellen-Tags (11): Horizontales Ausrichtungsattribut ALIGN

    In horizontaler Richtung können Sie die Ausrichtu...

    JS implementiert WeChats "Shit Bombing"-Funktion

    Hallo zusammen, ich bin Qiufeng. Vor Kurzem hat W...

    React+Typescript implementiert die Countdown-Hook-Methode

    Zunächst wird setInterval als Hook gekapselt 👇 im...

    Einführung in MyCat, die Datenbank-Middleware

    1. Mycat-Anwendungsszenarien Mycat wurde für eine...

    Detaillierte Erläuterung der TCPdump-Befehlsbeispiele in Linux

    Vorwort Einfach ausgedrückt ist tcpdump ein Paket...

    So erweitern Sie Vue Router-Links in Vue 3

    Vorwort Das Tag <router-link> ist ein großa...

    Codebeispiel für die Verwendung der MySql COALESCE-Funktion

    COALESCE ist eine Funktion, die sich nacheinander...