Dieser Artikel listet die Datentypliste (Liste) von MySQL auf, die hauptsächlich fünf Hauptkategorien umfasst: Ganzzahltyp, Gleitkommatyp, Zeichenfolgentyp, Datumstyp und andere Datentypen Es gibt auch Längen und Bereiche von MySQL-Datentypen mit Nutzungsempfehlungen und Grundprinzipien für die Auswahl von Datentypen.
Umfassen hauptsächlich die folgenden fünf Kategorien:
Integer-Typen: BIT, BOOL, TINY INT, SMALL INT, MEDIUM INT, INT, BIG INT
Gleitkommatyp: FLOAT, DOUBLE, DECIMAL
Stringtyp: CHAR, VARCHAR, TINY TEXT, TEXT, MEDIUM TEXT, LONGTEXT, TINY BLOB, BLOB, MEDIUM BLOB, LONG BLOB
Datumstypen: Date, DateTime, TimeStamp, Time, Year
Andere Datentypen: BINARY, VARBINARY, ENUM, SET, Geometry, Point, MultiPoint, LineString, MultiLineString, Polygon, GeometryCollection usw.
1. Wenn unsigned zum Wertebereich des Integer-Typs
MySQL数据类型 | 含义(有符号) |
tinyint(m) | 1个字节 范围(-128~127) |
smallint(m) | 2个字节 范围(-32768~32767) |
mediumint(m) | 3个字节 范围(-8388608~8388607) |
int(m) | 4个字节 范围(-2147483648~2147483647) |
bigint(m) | 8个字节 范围(+-9.22*10的18次方) |
hinzugefügt wird, wird der Maximalwert verdoppelt. Beispielsweise ist der Wertebereich von tinyint unsigned (0~256). ).
Das m in int(m) stellt die Anzeigebreite im SELECT-Abfrageergebnissatz dar. Es hat keinen Einfluss auf den tatsächlichen Wertebereich oder die Anzeigebreite. Ich weiß nicht, wozu dieses m dient.
2. Gleitkommatyp (Float und Double)
MySQL数据类型 | 含义 |
float(m,d) | 单精度浮点型 8位精度(4字节) m总个数,d小数位 |
double(m,d) | 双精度浮点型 16位精度(8字节) m总个数,d小数位 |
Angenommen, ein Feld ist als Float(6,3) definiert. Wenn eine Zahl 123,45678 eingefügt wird, speichert die tatsächliche Datenbank 123,457 , aber die Gesamtzahl unterliegt der tatsächlichen Zahl, also 6 Ziffern. Der ganzzahlige Teil hat eine maximale Länge von 3 Ziffern. Wenn die Zahl 12.1234 eingefügt wird, wird 12.1200 gespeichert Punkttypen werden in der Datenbank als Näherungswerte gespeichert, während Festkommatypen genaue Werte in der Datenbank speichern.
decimal(m,d) Parameter m<65 ist die Gesamtzahl, d<30 und d 4. String (char, varchar, _text) 2.char(n) feste Länge, char(4) belegt 4 Bytes, egal wie viele Zeichen gespeichert werden, varchar ist die tatsächliche Anzahl der gespeicherten Zeichen + 1 Byte (n< ;=255) oder 2 Bytes (n>255), Varchar(4) belegt also beim Speichern von 3 Zeichen 4 Bytes. 3.Die Geschwindigkeit beim Abrufen von Zeichenfolgen vom Typ Char ist schneller als vom Typ Varchar. 2. Der Texttyp darf keinen Standardwert haben. 3.varchar kann direkt einen Index erstellen, und der Text muss die erste Anzahl von Zeichen angeben, um einen Index zu erstellen. Die Abfragegeschwindigkeit von Varchar ist schneller als die von Text. Beim Erstellen von Indizes scheint der Textindex nicht zu funktionieren. 5. Binärdaten (_Blob) 1. _BLOB und _text werden im Textmodus gespeichert, während _Blob im Binärmodus gespeichert wird Modus. Groß- und Kleinschreibung wird nicht beachtet. 2. Die in _BLOB gespeicherten Daten können nur als Ganzes ausgelesen werden. 3._TEXT kann den Zeichensatz angeben, _BLO muss den Zeichensatz nicht angeben. 6. Datums- und Uhrzeittyp Wenn Sie ein Feld als Zeitstempel definieren, werden die Zeitdaten in diesem Feld automatisch aktualisiert, wenn andere Felder geändert werden, sodass dieses Datentypfeld die letzte Änderungszeit dieses Datensatzes speichern kann. Attribute von Datentypen Liste der Datentypen und Bytelängen: 定长字符串。 1. Bei der Angabe des Datentyps wird im Allgemeinen das Prinzip der Kleinheit übernommen. Wenn Sie beispielsweise TINY INT verwenden können, ist es am besten, INT zu verwenden Sie können den FLOAT-Typ verwenden. Es ist am besten, den DOUBLE-Typ nicht zu verwenden. Dadurch wird die Betriebseffizienz von MYSQL erheblich verbessert, insbesondere unter Testbedingungen mit großem Datenvolumen. 2. Es besteht keine Notwendigkeit, die Datentabelle zu komplex zu gestalten. Die Unterscheidung zwischen Funktionsmodulen ist möglicherweise für die spätere Wartung praktischer. 3 Die Benennung von Feldern ist ebenfalls eine Fähigkeit 4. Bevor Sie die Datentabellenstruktur entwerfen, stellen Sie sich bitte vor, dass das Ergebnis vernünftiger und effizienter ist 5 Die Datenbank muss sein Es ist ein Kompromiss zwischen Effizienz und Skalierbarkeit, und es ist unangemessen, eine der beiden Seiten zu bevorzugen Voraussetzung: Verwenden Sie eine geeignete Speicher-Engine. MyISAM-Datenspeicher-Engine und Datenspalten: MyISAM-Datentabelle, am besten verwenden Sie Datenspalten mit fester Länge (CHAR). anstelle einer variablen Datenspalte der Länge (VARCHAR). MEMORY-Speicher-Engine und Datenspalten: MEMORY-Datentabellen verwenden derzeit Datenzeilenspeicher mit fester Länge, daher spielt es keine Rolle, ob Sie CHAR- oder VARCHAR-Spalten verwenden. Beide werden als CHAR-Typen behandelt. InnoDB-Speicher-Engine und Datenspalten: Es wird empfohlen, den Typ VARCHAR zu verwenden. Für InnoDB-Datentabellen unterscheidet das interne Zeilenspeicherformat nicht zwischen Spalten fester Länge und Spalten variabler Länge (alle Datenzeilen verwenden Kopfzeiger, die auf Datenspaltenwerte zeigen), also in Im Wesentlichen ist die Verwendung von CHAR-Spalten fester Länge nicht unbedingt einfacher als die Verwendung von VARCHAR-Spalten variabler Länge. Daher ist der Hauptleistungsfaktor der von den Datenzeilen insgesamt genutzte Speicher. Da CHAR im Durchschnitt mehr Platz einnimmt als VARCHAR, ist es besser, VARCHAR zu verwenden, um den Gesamtspeicher und die Festplatten-E/A der zu verarbeitenden Datenzeilen zu minimieren. 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. Bitte beachten Sie, dass der Wert in der letzten Zeile in der obigen Tabelle gilt nur, wenn keinen strikten Modus verwendet ; wenn MySQL im strikten Modus ausgeführt wird, werden Werte, die die Spaltenlänge überschreiten, nicht gespeichert und Fehler werden auftreten. Verwandte Artikel: Detaillierte Erklärung der MYSQL-Datentypen Detaillierte Erklärung der korrekten Verwendung von Zahlen Arten von MySQL-Datentypen Ähnliche Videos: Datenbank-MySQL-Video-Tutorial Das obige ist der detaillierte Inhalt vonWas sind die Datentypen von MySQL? Detaillierte Erläuterung der MySQL-Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar(n) 固定长度,最多65535个字符 tinytext 可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext 可变长度,最多2的32次方-1个字符
Abschnitte.
MySQL关键字
含义
NULL
数据列可包含NULL值
NOT NULL
数据列不允许包含NULL值
DEFAULT
默认值
PRIMARY KEY
主键
AUTO_INCREMENT
自动递增,适用于整数类型
UNSIGNED
无符号
CHARACTER SET name
指定一个字符集
2. Länge und Bereich von MYSQL-Datentypen
Datentyp
Bytelänge
Bereich oder Verwendung
Bit
1
Unsigned [0,255], signiert [-128,127], Tianyuan Blog Hinweis: Sowohl BIT als auch BOOL Boolean-Typen belegen 1 Byte td>
TinyInt
1
Integer [0,255]
SmallInt
2
Unsigned [0,65535], signiert [-32768,32767]
MediumInt td>
3
Unsigned [0,2^24-1], signiert [-2^23,2^23-1]]
Int 4
Unsigned [0,2^32-1], signiert [-2^31,2^31-1]
BigInt
8
Unsigniert [0,2^64-1], signiert [-2^63,2^63 - 1]
Float(M,D)
4
Gleitkommazahl mit einfacher Genauigkeit. Tianyuan Blog erinnert daran, dass D hier Präzision ist. Wenn D<=24, ist es der Standard-FLOAT. Wenn D>24, wird es automatisch in den Typ DOUBLE konvertiert.
Double(M,D)
8
Gleitkomma mit doppelter Genauigkeit.
Dezimal(M,D)
M+1 oder M+2
Ungepackte Gleitkommazahl, Verwendung ähnlich FLOAT und DOUBLE, Tianyuan Blog erinnert Sie daran, dass bei Verwendung des Decimal-Datentyps in ASP das direkt aus der Datenbank gelesene Decimal vor dem Betrieb möglicherweise in einen Float- oder Double-Typ konvertiert werden muss.
Datum
3
Wird im Format JJJJ-MM-TT angezeigt, zum Beispiel: 19.07.2009
Datum Uhrzeit
8
Wird im Format JJJJ-MM-TT HH:MM:SS angezeigt, zum Beispiel: 2009 -07-19 11:22:30
TimeStamp
4
Anzeige im Format JJJJ-MM-TT, Beispiel: 2009-07 -19
Zeit
3
wird im Format HH:MM:SS angezeigt. Beispiel: 11:22:30
Jahr
1
wird im Format JJJJ angezeigt. Beispiel: 2009
Char(M)
M
String fester Länge. <🎜>
数据类型
字节长度
范围或用法
Bit
1
无符号[0,255],有符号[-128,127],天缘博客备注:BIT和BOOL布尔型都占用1字节
TinyInt
1
整数[0,255]
SmallInt
2
无符号[0,65535],有符号[-32768,32767]
MediumInt
3
无符号[0,2^24-1],有符号[-2^23,2^23-1]]
Int
4
无符号[0,2^32-1],有符号[-2^31,2^31-1]
BigInt
8
无符号[0,2^64-1],有符号[-2^63 ,2^63 -1]
Float(M,D)
4
单精度浮点数。天缘博客提醒这里的D是精度,如果D<=24则为默认的FLOAT,如果D>24则会自动被转换为DOUBLE型。
Double(M,D)
8
双精度浮点。
Decimal(M,D)
M+1或M+2
未打包的浮点数,用法类似于FLOAT和DOUBLE,天缘博客提醒您如果在ASP中使用到Decimal数据类型,直接从数据库读出来的Decimal可能需要先转换成Float或Double类型后再进行运算。
Date
3
以YYYY-MM-DD的格式显示,比如:2009-07-19
Date Time
8
以YYYY-MM-DD HH:MM:SS的格式显示,比如:2009-07-19 11:22:30
TimeStamp
4
以YYYY-MM-DD的格式显示,比如:2009-07-19
Time
3
以HH:MM:SS的格式显示。比如:11:22:30
Year
1
以YYYY的格式显示。比如:2009
Char(M)
M
VarChar(M)
M
变长字符串,要求M<=255 Binary(M) M 类似Char的二进制存储,特点是插入定长不足补0 VarBinary(M) M 类似VarChar的变长二进制存储,特点是定长不补0 Tiny Text Max:255 大小写不敏感 Text Max:64K 大小写不敏感 Medium Text Max:16M 大小写不敏感 Long Text Max:4G 大小写不敏感 TinyBlob Max:255 大小写敏感 Blob Max:64K 大小写敏感 MediumBlob Max:16M 大小写敏感 LongBlob Max:4G 大小写敏感 Enum 1或2 最大可达65535个不同的枚举值 Set 可达8 最大可达64个不同的值 Geometry Point LineString Polygon MultiPoint MultiLineString MultiPolygon GeometryCollection VarChar(M) M String mit variabler Länge, erfordert M<=255 < /tr>Binary(M) M Binärer Speicher ähnlich wie Char, gekennzeichnet durch das Einfügen von Lücken fester Länge und Auffüllen von 0 tr > < tr>VarBinary(M) M Binärspeicher mit variabler Länge ähnlich wie VarChar, gekennzeichnet durch feste Länge ohne Auffüllung 0 Winziger Text Max:255 Groß- und Kleinschreibung wird nicht beachtet Text Max :64K Groß-/Kleinschreibung wird nicht beachtet Mittelgroßer Text Max:16M Groß-/Kleinschreibung wird nicht beachtet Groß-/Kleinschreibung wird beachtet< /td> Langer Text Max:4G Groß- und Kleinschreibung wird ignoriert < td>TinyBlob< /td> Max:255 Groß-/Kleinschreibung beachten Blob Max:64K td> Groß-/Kleinschreibung beachten MediumBlob Max:16M Groß-/Kleinschreibung beachten LongBlob Max:4G Groß-/Kleinschreibung beachten Enum 1 oder 2 < td>Bis zu 65535 verschiedene AufzählungswerteSet Bis zu 8 < td>Bis zu 64 verschiedene Werte< /tr>Geometrie Punkt LineString Polygon MultiPoint td> MultiLineString MultiPolygon td> GeometryCollection 3. Verwendungsvorschläge
Grundprinzipien für die Auswahl von Datentypen
Auswahlprinzip: Bestimmen Sie, wie der geeignete Datentyp basierend auf der ausgewählten Speicher-Engine ausgewählt wird.
Die folgenden Auswahlmethoden werden nach Speicher-Engine klassifiziert:
Sprechen wir über Datenspalten fester Länge und Datenspalten variabler Länge. char und varchar
Die folgende Tabelle zeigt die Ergebnisse nach dem Speichern verschiedener Zeichenfolgewerte in den Spalten CHAR(4) und VARCHAR(4) und veranschaulicht den Unterschied zwischen CHAR und VARCHAR: 值 CHAR(4) 存储需求 VARCHAR(4) 存储需求 '' ' ' 4个字节 '' 1个字节 'ab' 'ab ' 4个字节 'ab ' 3个字节 'abcd' 'abcd' 4个字节 'abcd' 5个字节 'abcdefgh' 'abcd' 4个字节 'abcd' 5个字节
Die aus den Spalten CHAR(4) und VARCHAR(4) abgerufenen Werte sind nicht immer gleich, da nachgestellte Leerzeichen beim Abrufen aus der Spalte CHAR entfernt werden. Das folgende Beispiel veranschaulicht den Unterschied:
mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4));
Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)
MySQL> VALUES('ab', 'ab');
Abfrage OK, 1 Zeile (0,00 Sek.)
mysql>
+----------------+----------------+
|. |. CONCAT(c, '+') |
+----------------+----------------+
|. ab + |. ab+ |
+----------------+----------------+
1 Zeile im Satz (0,00 Sek.)