08. November 2011

Ausgewählte Datentypen in Datenbanken:

Datentypen
Erläuterungen
CHAR (n) Zeichendaten fester Länge mit der Länge size in Byte. Die maximale Länge beträgt 2.000 Byte. Die Default- und Mindestlänge beläuft sich auf 1 Byte.
VARCHAR (n) Zeichenfolge variabler Länge mit der maximalen Länge size in Byte oder Zeichen. Die maximale Länge beträgt 4.000 Byte. Es muß die size für VARCHAR angeben. Die Variante VARCHAR2 ist für Oracle spezifisch, ohne dass sie sich tatsächlich unterscheidet.
DATE Gültiger Datumsbereich vom 01.01.4712 v. Chr. bis zum 31.12.9999 n. Chr.
TIME Zeitangabe (evtl. inklusive Zeitzone)
TIMESTAMP Zeitstempel (umfasst Datum und Uhrzeit; evtl. inklusive Zeitzone), meistens mit Millisekundenauflösung, teilweise auch mikrosekundengenau.
(fractional_seconds_precision): Datumswerte für das Jahr, den Monat und den Tag sowie Zeitwerte für die Stunde, Minute und Sekunde, wobei fractional_seconds_precision die Stellenzahl der Sekundenbruchteile im Feld SECOND für das Datum und die Uhrzeit ist (entsprechend den Sekundenbruchteilen). Zulässige Werte von fractional_seconds_precision sind 0 bis 9. Der Default-Wert ist 6.
NUMBER oder DECIMAL Zahl mit der Gesamtstellenzahl p (precision) und der Anzahl der Nachkommastellen s (scale). Die Anzahl der Gesamtstellen kann zwischen 1 und 38 betragen.
Festkommazahl (positiv oder negativ) mit insgesamt maximal n Stellen, davon m Nachkommastellen. Wegen der hier erfolgenden Speicherung als Dezimalzahl ist eine besonders für Geldbeträge notwendige Genauigkeit gegeben.
FLOAT (m) Der Datentyp FLOAT ist eine Gleitkommazahl mit maximal m Nachkommastellen. Die Default-Gesamstellenzahl für diesen Datentyp ist 126 binär oder 38 dezimal.
DOUBLE oder
DOUBLE PRECISION
Gleitkommazahl (positiv oder negativ). Die Genauigkeit für diesen Datentyp ist jeweils vom Datenbanksystem definiert.
float und double
sind für technisch-wissenschaftliche Werte geeignet und umfassen auch die Exponentialdarstellung. Wegen der Speicherung im Binärformat sind sie aber für Geldbeträge nicht geeignet, weil sich beispielsweise der Wert 0,10 € (entspricht 10 Cent) nicht exakt abbilden lässt.
REAL Gleitkommazahl (positiv oder negativ). Die Genauigkeit für diesen Datentyp ist jeweils vom Datenbanksystem definiert.
INTEGER Ganze Zahl (positiv oder negativ), wobei je nach Zahl der verwendeten Bits Bezeichnungen wie smallint, tinyint oder bigint verwendet werden. Die jeweiligen Grenzen und die verwendete Terminologie sind vom Datenbanksystem definiert.
entspricht NUMBER(p,0)
NCHAR(length) Der Datentyp NCHAR ist ein Datentyp, der nur für Unicode gilt. Wenn Sie eine Tabelle mit einer Spalte NCHAR erstellen, definieren Sie die Spaltenlänge in Zeichen. Sie definieren den länderspezifischen Zeichensatz, wenn Sie die Datenbank erstellen. Die maximale Länge einer Spalte wird durch die Definition des länderspezifischen Zeichensatzes bestimmt. Breitenspezifikationen des Zeichendatentyps NCHAR beziehen sich auf die Anzahl der Zeichen. Die maximal zulässige Spaltengröße beträgt 2000 Byte. Wenn Sie einen Wert einfügen, der kürzer ist als die Spaltenlänge, füllt Oracle den Wert mit Leerstellen auf die Spaltenlänge auf. Sie können weder einen CHAR-Wert in eine Spalte NCHAR, noch einen NCHAR-Wert in eine Spalte CHAR einfügen.
NVARCHAR2(length) Der Datentyp NVARCHAR2 ist ein Datentyp, der nur für Unicode gilt. Er ist weitgehend identisch mit NCHAR, allerdings beträgt seine maximale Länge 4.000 Byte, und die Werte werden nicht mit Leerstellen auf die angegebene Länge aufgefüllt.
LONG Zeichendaten variabler Länge von bis zu 2 GB.
LONG RAW Binärdaten variabler Länge vom Typ RAW von bis zu 2 GB.
BLOB Großes Binärobjekt (Binary Large Object, BLOB).
Binärdaten von maximal n Bytes Länge. Binary Large Objects (BLOBs) sind große binäre Objekte wie Bild- oder Audiodateien. Der Begriff wird häufig im Zusammenhang mit Open-Source-Projekten und Datenbanken benutzt.
CLOB Großes Objekt vom Typ CHAR (Character Large Object, CLOB), das Einzel- oder Mehr-Byte-Zeichen enthält. Es werden Zeichensätze mit fester und variabler Breite unter-stützt, und beide verwenden den CHAR-Zeichensatz der Datenbank.
NCLOB Großes Objekt vom Typ CHAR, das Unicode-Zeichen enthält. Es werden Zeichensätze mit fester und variabler Breite unterstützt, und beide verwenden den NCHAR-Zeichensatz der Datenbank. Dieser Datentyp speichert Daten länderspezifischer Zeichensätze.
BOOLEAN Boolesche Variable (kann die Werte true(wahr) oder false (falsch) annehmen). Dieser Datentyp ist laut SQL:2003 optional und nicht alle DBMS stellen diesen Datentyp bereit.

Die Typen CHAR und VARCHAR ähneln einander, werden aber auf unterschiedliche Weise gespeichert und abgerufen. Weitere Unterschiede sind die maximale Länge und die Behandlung von Leerzeichen am String-Ende. Die Typen CHAR und VARCHAR werden unter Angabe einer Länge deklariert, die die maximale Anzahl von Zeichen spezifiziert, die gespeichert werden kann. So kann ein CHAR(30)-Wert beispielsweise 30 Zeichen aufnehmen. Die Länge einer CHAR-Spalte ist auf den beim Anlegen der Tabelle deklarierten Wert beschränkt. Dieser kann zwischen 0 und 255 liegen. Wenn CHAR-Werte gespeichert werden, dann werden sie nach rechts mit Leerzeichen bis auf die angegebene Länge aufgefüllt. Beim Abrufen von CHAR-Werten werden die am Ende stehenden Leerzeichen dann entfernt. Werte in VARCHAR-Spalten sind Strings variabler Länge. Diese können zwischen 0 und 65.535 liegen. (Die effektive Maximallänge einer VARCHAR-Spalte wird durch die maximale Datensatzgröße und den verwendeten Zeichensatz bestimmt. Die gesamte Maximallänge liegt bei 65.532 Byte.) Im Gegensatz zu CHAR- werden VARCHAR-Werte nur mit so vielen Zeichen wie erforderlich zuzüglich eines Bytes gespeichert, welches die Länge angibt (bei Spalten, die mit einer Länge größer 255 deklariert sind, werden hierfür 2 Byte verwendet). VARCHAR-Werte werden beim Speichern nicht aufgefüllt. Ferner werden am Ende stehende Leerzeichen entsprechend dem SQL-Standard beim Speichern und Abrufen beibehalten. Wenn man einer CHAR- oder VARCHAR-Spalte einen Wert zuweisen, der die deklarierte Länge der Spalte überschreitet, dann wird der Wert so weit gekürzt, bis er passend ist. Die folgende Tabelle veranschaulicht die Unterschiede zwischen den Typen CHAR und VARCHAR. Hierzu wird das jeweilige Ergebnis der Speicherung verschiedener String-Werte in CHAR(4)- und VARCHAR(4)-Spalten angezeigt:

Wert
CHAR(4)
Erforderlicher Speicherplatz
VARCHAR(4)
Erforderlicher Speicherplatz
''
'    '
4 Byte
''
1 Byte
'ab'
'ab  '
4 Byte
'ab '
3 Byte
'abcd'
'abcd'
4 Byte
'abcd'
5 Byte
'abcdefgh'
'abcd'
4 Byte
'abcd'
5 Byte

Kommentar veröffentlichen

About This Blog

  © Blogger template Shush by Ourblogtemplates.com 2009

Back to TOP