08. November 2011
>> –
datenbanken,
portfolio
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
|