Heim > Artikel > System-Tutorial > Zusammenfassung des Mariadb-Lernens (3): Datentypen
Datentyp-> ist eine Abstraktion einer Datenklassifizierung mit denselben Attributen und Eigenschaften.
Zum Beispiel:
Eine Zeichenfolge ist eine Zeichenfolge, die aus Zeichen besteht. In Computern können Teilzeichenfolgen geteilt und am Ende der Zeichenfolge neue Zeichen hinzugefügt werden. Solche Operationen können jedoch nur mit Zeichenfolgendaten ausgeführt werden, nicht mit Ganzzahlen .
Der numerische Typ, die arabischen Ziffern, denen wir am meisten ausgesetzt sind, kann für arithmetische Operationen, logische Operationen und andere Operationen verwendet werden
MySQL unterstützt mehrere Typen, die grob in drei Kategorien unterteilt werden können: numerische Typen, Datums-/Uhrzeittypen und Zeichenfolgentypen (Zeichen).
1. Für ganzzahlige Typen können Sie deren Länge begrenzen. Das Format lautet wie folgt:
整数类型[(M)] [SIGNED | UNSIGNED | ZEROFILL]
M ist die Anzahl der Ziffern in der Zahl. Beispielsweise kann TINYINT(3) nur drei Ziffern speichern, und die Anzahl der Ziffern sollte den darstellbaren Bereich nicht überschreiten
SIGNIERT: Der Standardwert ist eine signierte Nummer
UNSIGNED: wird als vorzeichenlose Zahl angegeben
ZEROFILL: Wenn M Bits nicht erfüllt sind, wird die Vorderseite mit 0 gefüllt und wird zu einer vorzeichenlosen Zahl
2. Bei Gleitkommazahlen kann die Gesamtzahl der Ziffern und die Anzahl der Dezimalstellen begrenzt werden
(FLOAT|DOUBLE)[(M,D)] [SIGNED | UNSIGNED | ZEROFILL]
M ist die Gesamtzahl der Ziffern, D ist die Anzahl der Nachkommastellen
ZEROFILL hat den gleichen Effekt wie UNSIGNED für Gleitkommatypen
MariaDB [mydb]> DESC t1; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | c1 | float(5,2) | YES | | NULL | | | c2 | double(10,3) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) MariaDB [mydb]> INSERT INTO t1 VALUES(23.5,12.34566777); Query OK, 1 row affected (0.01 sec) MariaDB [mydb]> SELECT * FROM t1; //这里可以看到,在其后补了0 +-------+--------+ | c1 | c2 | +-------+--------+ | 23.50 | 12.346 | +-------+--------+ 1 row in set (0.00 sec)
Formatabkürzung: Datums- und Uhrzeitformat, zusätzlich zum Standardformat wird auch das lose Format unterstützt.
Erstellen Sie eine Testtabelle mit folgender Struktur:
MariaDB [mydb]> desc datetable; +-------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------+------+-----+-------------------+-----------------------------+ | c1 | date | YES | | NULL | | | c2 | time | YES | | NULL | | | c3 | datetime | YES | | NULL | | | c4 | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +-------+-----------+------+-----+-------------------+-----------------------------+
Für Datumstyp: JJ-MM-TT, JJMMTT, JJJJ/MM/TT
MariaDB [mydb]> INSERT INTO datetable(c1) VALUES('2018-01-01'),('18-01-01'), -> ('180101'),('2018/01/01'),(180101); Query OK, 5 rows affected (0.01 sec) Records: 5 Duplicates: 0 Warnings: 0 MariaDB [mydb]> SELECT c1 FROM datetable; +------------+ | c1 | +------------+ | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | | 2018-01-01 | +------------+ 5 rows in set (0.00 sec)
Für TIME geben Sie Folgendes ein: „D HH:MM:SS“, „HH:MM:SS“, „HH:MM“, „D HH:MM“, „D HH“, „SS“, „HHMMSS“
D steht für Tag, also ZEIT+D*24
MariaDB [mydb]> INSERT INTO datetable(c2) VALUES -> ('12:20:20'),('1 12:20:20'), -> ('12:20'),('1 12'),('20'),('122020'), -> (122020); Query OK, 7 rows affected (0.03 sec) Records: 7 Duplicates: 0 Warnings: 0 MariaDB [mydb]> SELECT c2 FROM datetable; +----------+ | c2 | +----------+ | 12:20:20 | | 36:20:20 | | 12:20:00 | | 36:00:00 | | 00:00:20 | | 12:20:20 | | 12:20:20 | +----------+ 7 rows in set (0.00 sec)
Für die beiden Formate DATETIME und TIMESTAMP sind es die Abkürzungen des oben genannten Zeitabkürzungsformats, zum Beispiel:
20180101122020 -> '2018-01-01 12:20:20'
Für das häufiger verwendete Format TIMESTAMP sollte gesagt werden, dass es die Anzahl der Millisekunden von „1970-01-01 00:00:00“ bis zur Speicherzeit speichert. Sein Standardwert kann CURRENT_TIMESTAMP oder sein Synonym sein : CURRENT_TIMESTAMP() , NOW(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP,LOCALTIMESTAMP()
CHAR- und VARCHAR-Typen sind ähnlich, werden jedoch unterschiedlich gespeichert und abgerufen. Sie unterscheiden sich auch hinsichtlich ihrer maximalen Länge und ob nachgestellte Leerzeichen erhalten bleiben. Während der Speicherung oder des Abrufs wird keine Fallkonvertierung durchgeführt.
BINARY- und VARBINARY-Klassen ähneln CHAR und VARCHAR, außer dass sie binäre Zeichenfolgen anstelle von nicht-binären Zeichenfolgen enthalten. Das heißt, sie enthalten Byte-Strings und keine Zeichenfolgen. Das bedeutet, dass sie keinen Zeichensatz haben und Sortierung und Vergleich auf dem numerischen Wert der Spaltenwertbytes basieren.
Ein BLOB ist ein binäres großes Objekt, das eine variable Datenmenge enthalten kann:
Es gibt 4 BLOB-Typen: TINYBLOB, BLOB, MEDIUMBLOB und LONGBLOB. Sie unterscheiden sich lediglich in der maximalen Länge, in der sie einen Wert aufnehmen können.
Es gibt 4 TEXT-Typen: TINYTEXT, TEXT, MEDIUMTEXT und LONGTEXT. Diese entsprechen 4 BLOB-Typen mit der gleichen maximalen Länge und den gleichen Speicheranforderungen.
Aufzählungstyp: ENUM('value1','value2',...)
Speicherbytes: Da Elementnummern gespeichert werden, belegen die Elemente 0–255 nur ein Byte, während 255–65535 zwei Elemente belegen
Das obige ist der detaillierte Inhalt vonZusammenfassung des Mariadb-Lernens (3): Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!