Kapitel 7: MySQL-Sprachreferenz 381
k¨onnen, weil das Client-Server-Protokoll und MyISAM-Tabellen momentan
eine Beschr¨ankungen auf 16 MB pro Kommunikationspaket / Tabellenzeile
haben. Siehe Abschnitt 7.2.3.2 [BLOB], Seite 391.
ENUM(’wert1’,’wert2’,...)
An Aufz¨ahlung. Ein Zeichenkettenobjekt, das nur einen Wert haben kann, der
aus den Auflistungswerten ’wert1’, ’wert2’, ..., NULL oder dem speziellen ""-
Fehlerwert ausgew¨ahlt wird. Eine ENUM kann maximal 65535 unterschiedliche
Werte haben. Siehe Abschnitt 7.2.3.3 [ENUM], Seite 392.
SET(’wert1’,’wert2’,...)
Eine Reihe. Ein Zeichenkettenobjekt, das 0 oder mehr Werte haben kann, von
denen jeder aus den Auflistungswerten ’wert1’, ’wert2’, ... ausgew¨ahlt wer-
den muss. Eine SET kann maximal 64 Elemente haben. Siehe Abschnitt 7.2.3.4
[SET], Seite 393.
7.2.1 Numerische Typen
MySQL unterst¨utzt alle numerischen Typen von ANSI/ISO-SQL92. Diese Typen beinhal-
ten die exakten numerischen Datentyp en (NUMERIC, DECIMAL, INTEGER und SMALLINT) sowie
die n¨aherungsweisen numerischen Datentypen (FLOAT, REAL und DOUBLE PRECISION). Das
Schl¨usselwort INT ist ein Synonym f¨ur INTEGER und das Schl¨usselwort DEC ist ein Synonym
f¨ur DECIMAL.
Die NUMERIC- und DECIMAL-Typen sind in MySQL als derselbe Typ implementiert, wie es
vom SQL92-Standard zugelassen ist. Sie werden f¨ur Werte benutzt, bei denen es wichtig
ist, die exakte Genauigkeit zu bewahren, zum Beispiel bei monet¨aren Daten. Wenn Sie
eine Spalte mit einem dieser Typen deklarieren, k¨onnen Genauigkeit und Bereich festgelegt
werden (und werden das ¨ublicherweise auch). Beispiel:
gehalt DECIMAL(9,2)
In diesem Beispiel repr¨asentiert 9 (genauigkeit) die Anzahl signifikanter Dezimalziffern, die
f¨ur Werte gespeichert werden, und 2 (bereich) repr¨asentiert die Anzahl von Ziffern, die nach
dem Dezimalpunkt gesp eichert werden. In diesem Fall liegt der Wertebereich, der in der
gehalt-Spalte gespeichert werden kann, deswegen zwischen -9999999.99 und 9999999.99.
(MySQL kann tats¨achlich Zahlen bis zu 9999999.99 in dieser Spalte speichern, weil er nicht
das Vorzeichen f¨ur positive Zahlen speichern muss).
In ANSI/ISO-SQL92 ist die Syntax DECIMAL(p) ¨aquivalent zu DECIMAL(p,0).
Gleichermaßen ist die Syntax DECIMAL ¨aquivalent zu DECIMAL(p,0), wobei es der
Implementation ¨uberlassen bleibt, den Wert von p festzulegen. MySQL unterst¨utzt
momentan keine dieser abweichenden Formen der DECIMAL- / NUMERIC-Datentypen. Das
ist im Allgemeinen kein ernstes Problem, weil der haupts¨achliche Nutzen dieser Typen
darin liegt, sowohl Genauigkeit als auch Bereich explizit steuern zu k¨onnen.
DECIMAL- und NUMERIC-Werte sind als Zeichenketten gespeichert statt als
Fließkommazahlen, um die dezimale Genauigkeit dieser Werte zu bewahren. Ein
Zeichen wird benutzt f¨ur jede Ziffer des Werts, den Dezimalpunkt (wenn bereich > 0)
und das ‘-’-Zeichen (f¨ur negative Zahlen). Wenn bereich 0 ist, enthalten DECIMAL- und
NUMERIC-Werte weder Dezimalpunkt noch Bruchteil.
Kommentare zu diesen Handbüchern