Heim >Datenbank >MySQL-Tutorial >Was sind die Datentypen von MySQL?
Zu den MySQL-Datentypen gehören: BOOL, TINY INT, INT, BIG INT, FLOAT, DOUBLE, DECIMAL, CHAR, VARCHAR, TINY TEXT, TEXT, Date, DateTime, TimeStamp, Year usw.
umfassen hauptsächlich die folgenden fünf Kategorien:
Ganzzahltypen: BIT, BOOL, TINY INT, SMALL INT, MEDIUM INT, INT, BIG INT
Gleitkommatypen: FLOAT, DOUBLE, DECIMAL
String-Typ: CHAR, VARCHAR, TINY TEXT, TEXT, MEDIUM TEXT, LONGTEXT, TINY BLOB, BLOB, MEDIUM BLOB, LONG BLOB
Datumstyp: Datum, DateTime, TimeStamp, Zeit, Jahr
Andere Daten Typen: BINARY, VARBINARY, ENUM, SET, Geometry, Point, MultiPoint, LineString, MultiLineString, Polygon, GeometryCollection usw.
1, Integer-Typ
MySQL-Datentyp | Bedeutung (vorzeichenbehaftet) |
tinyint(m) | 1-Byte-Bereich (-128~127) |
smallint(m) | 2-Byte-Bereich (-32768~32767) |
mediumint(m) | 3-Byte-Bereich ( -8388608~8388607) |
int(m) | 4-Byte-Bereich (-2147483648~2147483647) |
bigint(m) | 8-Byte-Bereich (+- 9,22*10 bis zum 18 Leistung) |
Wenn unsigned zum Wertebereich hinzugefügt wird, wird der Maximalwert verdoppelt. Der Wertebereich von tinyint unsigned beträgt beispielsweise (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-Datentyp | Bedeutung |
float(m,d) | Einzelpräzisions-Gleitkommatyp 8-Bit-Präzision (4 Bytes) Die Gesamtzahl der m, d Dezimalstellen |
double(m,d) | Gleitkommatyp mit doppelter Genauigkeit, 16-Bit-Präzision (8 Bytes) Die Gesamtzahl der m, d Dezimalstellen |
Angenommen, a Felddefinition Es ist float (6,3). Wenn Sie eine Zahl 123,45678 eingeben, ist die tatsächliche Zahl, die in der Datenbank gespeichert ist, 123,457, aber die Gesamtzahl unterliegt der tatsächlichen Zahl, also 6 Ziffern. Der ganzzahlige Teil besteht aus bis zu 3 Ziffern. Wenn Sie die Zahl 12.123456 eingeben, ist der gespeicherte Wert 12.1200.
3. Gleitkommazahlen speichern Näherungswerte in der Datenbank, während Festkommatypen Näherungswerte in der Datenbank speichern. Was in der Datenbank gespeichert wird, ist der genaue Wert.
decimal(m,d) Parameter m25d3b6098d2cfff9efebe19a3c5375b0 255),Also belegt varchar(4) beim Speichern von 3 Zeichen 4 Bytes.
3.Die Geschwindigkeit beim Abrufen von Zeichenfolgen vom Typ Char ist schneller als vom Typ Varchar.
varchar und Text:
1.n kann für Varchar angegeben werden, kann jedoch nicht für Text angegeben werden. Der interne Speicher von Varchar ist die tatsächliche Anzahl der gespeicherten Zeichen + 1 Byte (na1cae4dfcfce2a5f311845e177eb284a). 255), Text ist die tatsächliche Anzahl der Zeichen + 2 Wörter
Abschnitt.
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. _TEXT wird im Textmodus gespeichert, und bei der englischen Speicherung wird die Groß-/Kleinschreibung beachtet, während _Blob unabhängig von der Groß-/Kleinschreibung gespeichert wird.
2._Die im BLOB gespeicherten Daten können nur als Ganzes ausgelesen werden.
3._TEXT kann den Zeichensatz angeben, _BLO muss den Zeichensatz nicht angeben. 6. Datums-/Uhrzeittyp 2 :25:36'
DatumUhrzeit
Zeitstempel | Speichern Sie automatisch die Datensatzänderungszeit |
Wenn Sie ein Feld als Zeitstempel definieren, wird die Zeit in Dieses Feld Die Daten werden automatisch aktualisiert, wenn andere Felder geändert werden, sodass Felder dieses Datentyps den Zeitpunkt der letzten Änderung dieses Datensatzes speichern können. | |
MySQL-Schlüsselwörter | |
NULL | |
NOT NULL |
STANDARD
PRIMÄRSCHLÜSSEL | Primärschlüssel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AUTO_INCREMENT | Automatische Inkrementierung, geeignet für Ganzzahltypen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UNSIGNED | Unsigned | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZEICHENSATZname | Geben Sie ein Zeichen an eingestellt | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Unsigned [0,2^24-1], signiert [-2^23,2^23- 1]] | Int | |||||||||||||||||||
Unsigned [0,2^32-1], signiert [-2^31,2^31-1] | BigInt | |||||||||||||||||||
None Signed [0,2^64-1], signiert [-2^63,2^63 -1] | Float(M,D) | |||||||||||||||||||
Gleitkommazahl mit einfacher Genauigkeit. Tianyuan Blog erinnert daran, dass D hier Präzision ist. Wenn D774c73a59e8abf83a63bcc6f092c7e2824, wird es automatisch in den Typ DOUBLE konvertiert. | Double(M,D) | |||||||||||||||||||
Gleitkomma mit doppelter Genauigkeit. | Decimal(M,D) | |||||||||||||||||||
Ungepackte Gleitkommazahl, die Verwendung ähnelt FLOAT und DOUBLE. Wenn Sie den Datentyp Decimal in ASP verwenden, erinnert Sie das Tianyuan Blog daran Aus der Datenbank gelesene Dezimalzahlen müssen vor dem Betrieb möglicherweise in den Typ Float oder Double konvertiert werden. | Datum | |||||||||||||||||||
wird im Format JJJJ-MM-TT angezeigt, zum Beispiel: 2009-07-19 | Datumszeit | |||||||||||||||||||
wird im Format JJJJ-MM-TT HH angezeigt :MM:SS Das Format wird angezeigt, zum Beispiel: 2009-07-19 11:22:30 | TimeStamp | |||||||||||||||||||
wird im Format JJJJ-MM-TT angezeigt, zum Beispiel: 2009-07- 19 | Zeit | |||||||||||||||||||
Anzeige im Format HH:MM:SS. Beispiel: 11:22:30 | Jahr | |||||||||||||||||||
wird im Format JJJJ angezeigt. Beispiel: 2009 | Char(M) | |||||||||||||||||||
String fester Länge. | ||||||||||||||||||||
VarBinary(M) | M | |||||||||||||||||||
Tiny Text | Max: 255 | |||||||||||||||||||
. Text | Max: 64K | |||||||||||||||||||
Mittlerer Text | Max: 16M | Groß-/Kleinschreibung ignorieren|||||||||||||||||||
Langer Text | Max: 4G | Groß-/Kleinschreibung ignorieren | ||||||||||||||||||
TinyBlob | Max: 255 | Fall empfindlich | ||||||||||||||||||
Blob | Max:64K | Groß-/Kleinschreibung beachten | ||||||||||||||||||
MediumBlob | Max:16M | Groß-/Kleinschreibung beachten | ||||||||||||||||||
LongBlob | Max: 4G | Groß- und Kleinschreibung beachten | ||||||||||||||||||
Enum | 1 oder 2 | Bis zu 65535 verschiedene Aufzählungswerte | ||||||||||||||||||
Set | Bis zu 8 | Bis zu 64 verschiedene Werte | ||||||||||||||||||
Geometrie | ||||||||||||||||||||
Punkt | ||||||||||||||||||||
LineString | ||||||||||||||||||||
Polygon | ||||||||||||||||||||
MultiPoint | ||||||||||||||||||||
MultiLineString | ||||||||||||||||||||
MultiPolygon | ||||||||||||||||||||
GeometryCollection | ||||||||||||||||||||
Speicheranforderungen | VARCHAR(4) | Speicheranforderungen | '' | |
4 Bytes | 'ab ' | 3 Bytes | 'abcd' | |
4 Bytes | 'abcd' | 5 Bytes | 'abcdefgh' | |
4 Bytes | 'abcd' | 5 Bytes |
Bitte beachten Sie, dass der Wert in der letzten Zeile in der obigen Tabelle nur gilt, wenn der strikte Modus nicht verwendet wird ; wenn MySQL im strikten Modus ausgeführt wird, werden Werte, die die Spaltenlänge überschreiten, nicht gespeichert , und es wird ein Fehler auftreten. 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. Die folgenden Beispiele verdeutlichen diesen Unterschied: mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4)); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO vc VALUES ('ab ', 'ab '); Query OK, 1 row affected (0.00 sec) mysql> SELECT CONCAT(v, '+'), CONCAT(c, '+') FROM vc; +----------------+----------------+ | CONCAT(v, '+') | CONCAT(c, '+') | +----------------+----------------+ | ab + | ab+ | +----------------+----------------+ 1 row in set (0.00 sec) Text und BlobBei der Verwendung von Text- und Blob-Feldtypen achten Sie bitte auf die folgenden Punkte, um die Leistung der Datenbank besser auszunutzen. ①BLOB- und TEXT-Werte können auch eigene Probleme verursachen, insbesondere wenn eine große Anzahl von Lösch- oder Aktualisierungsvorgängen ausgeführt wird. Das Löschen dieser Art von Werten hinterlässt eine große „Lücke“ in der Datentabelle. Datensätze, die diese „Lücken“ füllen, können in Zukunft unterschiedliche Längen haben. Um die Leistung zu verbessern, wird empfohlen, regelmäßig die Funktion OPTIMIZE TABLE zum Defragmentieren zu verwenden solche Tabellen. Gleitkommazahlen und FestkommazahlenUm alle Aufmerksamkeit zu erregen, schauen wir uns vor der Einführung von Gleitkommazahlen und Festkommazahlen ein Beispiel an: mysql> CREATE TABLE test (c1 float(10,2),c2 decimal(10,2)); Query OK, 0 rows affected (0.29 sec) mysql> insert into test values(131072.32,131072.32); Query OK, 1 row affected (0.07 sec) mysql> select * from test; +-----------+-----------+ | c1 | c2 | +-----------+-----------+ | 131072.31 | 131072.32 | +-----------+-----------+ 1 row in set (0.00 sec) Aus dem obigen Beispiel sehen wir, dass sich der Wert der Spalte c1 ändert von 131072,32 auf 131072,31, was durch die Ungenauigkeit von Gleitkommazahlen verursacht wird. In MySQL sind Float und Double (oder Real) Gleitkommazahlen und Decimal (oder Numberic) ist eine Festkommazahl. Der Vorteil von Gleitkommazahlen gegenüber Festkommazahlen besteht darin, dass Gleitkommazahlen bei konstanter Länge einen größeren Datenbereich darstellen können; der Nachteil besteht darin, dass es zu Genauigkeitsproblemen kommen kann. Bei zukünftigen Anwendungen von Gleitkomma- und Festkommazahlen sollte sich jeder an die folgenden Punkte erinnern:
|
Das obige ist der detaillierte Inhalt vonWas sind die Datentypen von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!