Heim> häufiges Problem> Hauptteil

Welche Datentypen gibt es bei Oracle?

DDD
Freigeben: 2023-06-05 11:40:30
Original
15699 Leute haben es durchsucht

Zu den Datentypen von

Oracle gehören: 1. String-Typ, char und varchar2, der jede beliebige Zeichenfolge ausdrücken kann; 2. Numerischer Typ, number(m,n), der jede beliebige Zahl ausdrücken kann; 3. Datumstyp, der Datumsangaben speichert und Zeit; 4. Clob-Typ, der Einzelbyte-String- oder Multi-Byte-String-Daten speichert; 5. Blob-Typ, der unstrukturierte Binärdaten speichert; 6. Rowid-Typ, der die in der Datenbank aufgezeichneten physischen Adressen speichert; 7. Andere Datentypen.

Welche Datentypen gibt es bei Oracle?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Oracle Version 19c, Dell G3-Computer.

Oracles Datentypen sind wie folgt:

1. String-Typen: char und varchar2, die jeden String ausdrücken können.

2. Zahlentyp: Zahl (m, n), die eine beliebige Zahl ausdrücken kann. m ist die Gesamtlänge der Zahl, n ist die Anzahl der Nachkommastellen. Wenn n 0 ist, bedeutet dies, dass es sich um eine handelt ganze Zahl.

3. Datumstyp: Datum, speichert Datum und Uhrzeit, einschließlich Jahr (JJJJ), Monat (MM), Tag (TT), Stunde (hh24), Minute (mi) und Sekunde (ss).

4. Clob-Typ, der Einzelbyte-String- oder Multibyte-String-Daten speichert, z. B. Textdateien und XML-Dateien.

5. Blob-Typ, der unstrukturierte Binärdaten wie Bilder, Audio, Video, Bürodokumente usw. speichert.

6. Rowid-Typ, der die in der Datenbank erfasste physische Adresse in der Tabelle speichert.

7. Andere Datentypen.

1. Der String-Typ

wird in der Sprache C/C++ verwendet. In der Oracle-Datenbank werden Strings wie folgt in einfache Anführungszeichen gesetzt:

'www.freecplus' 'Coder Youdao'

'A Silly Bird'

1. Zeichenfolgen mit fester Länge werden durch char dargestellt. Wenn die Länge des gespeicherten Dateninhalts nicht ausreicht, werden Leerzeichen nach dem automatisch aufgefüllt Der Dateninhalt muss seine feste Länge erreichen, z. B. enthält char(10) immer 10 Bytes an Informationen.

Das Char-Feld kann bis zu 2000 Byte Inhalt speichern.

2. Zeichenfolgen variabler Länge werden durch varchar2 dargestellt. Im Gegensatz zum Typ char füllt Oracle nach dem Dateninhalt nichts aus.

Das Feld varchar2 kann bis zu 4000 Byte Inhalt speichern, und ab der Oracle 12c-Version kann es 32767 Byte Inhalt speichern.

3. Vergleich von char und varchar2

char(10), wenn in „freecplus“ gespeichert, wird „freecplus“ in der Datenbank gespeichert, wobei am Ende ein Leerzeichen hinzugefügt wird.

varchar2(10), wenn Sie „freecplus“ speichern, wird „freecplus“ in der Datenbank gespeichert und es wird nichts hinzugefügt.

In praktischen Anwendungen möchten wir nicht, dass Oracle nach der Zeichenfolge Leerzeichen hinzufügt. Kann der char-Typ also aufgegeben werden? Nein, wir verwenden im Allgemeinen den Typ char, um Dateninhalte mit fester Größe zu speichern, z. B. eine ID-Nummer, die immer 18 Bit lang ist. Daher ist char(18) sehr gut geeignet. Kann ich varchar2(18) zum Speichern einer ID-Nummer verwenden? Natürlich können Sie das, aber die Effizienz von char(18) ist viel höher als die von varchar2(18).

Um es zusammenzufassen: Wenn Sie sicher sind, sicher und garantiert, dass die Länge der gespeicherten Zeichenfolge festgelegt ist, z. B. Geschlecht, ID-Nummer, Mobiltelefonnummer, verwenden Sie den Typ char, andernfalls verwenden Sie den Typ varchar2, z. B. Name, Bildung, Adresse, Hobbys usw. Obwohl char starr ist, ist es effizient.

4. Speicherung chinesischer Zeichen

Wie viele Bytes jedes chinesische Zeichen einnimmt, hängt von der spezifischen Codierungsmethode ab, z. B. UTF-8 (1-3 Bytes), GB2312 (2 Bytes), GBK (2 Bytes), GB18030 ( 1, 2, 4 Byte).

2. Zahlentyp

Oracle verwendet den Zahlentyp zum Speichern von Zahlen. Dieser Typ kann bis zu 38 Bit Genauigkeit speichern, was viel höher ist als die herkömmlichen Long-Int- und Double-Typen in Programmiersprachen.

Zahl(m,n), m stellt die Gesamtlänge dar, n stellt die Genauigkeit der Dezimalstellen der gespeicherten Daten dar. Wenn die Genauigkeit der Dezimalstellen der gespeicherten Daten n überschreitet, wird der gerundete Wert verwendet.Zum Beispiel: Zahl (10,3), 10 ist die Gesamtlänge, 3 ist die Anzahl der Nachkommastellen, z. B. 123,456.

Wenn Sie 123,4567 einzahlen, beträgt der tatsächliche Betrag 123,457.

Wenn Sie 12345679,899 einzahlen und die Gesamtlänge 10 überschreitet, meldet Oracle einen Fehler.

Wenn Sie ganze Zahlen speichern möchten, verwenden Sie einfach Zahl (m). m stellt die maximale Anzahl von Ziffern dar, die in den Daten gespeichert werden können.

3. Datumstyp

Oracle verwendet den Datumstyp zur Darstellung von Datum und Uhrzeit. Dies ist ein 7-Byte-Datentyp mit fester Breite und 7 Attributen, darunter: Jahrhundert, Jahr in Jahrhundert, Monat, Monat Welcher Tag, Stunde, Minute und Sekunde in.

In Programmiersprachen werden Datums- und Uhrzeitangaben in Zeichenfolgen angezeigt und geschrieben. Oracle bietet zwei Funktionen, to_date und to_char, um zwischen Datumstyp und Zeichenfolgentyp zu konvertieren.Zum Beispiel:

insert into T_GIRL(name,birthday) values('西施',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss')); select name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL where name='西施';
Nach dem Login kopieren

4. Clob- und Blob-Typen

Clob-Typ, String mit variabler Länge, großes Objekt, bis zu 4 GB, Clob kann Einzelbyte-String- oder Multibyte-String-Daten speichern, Clob wird als a betrachtet größere Saite. Wenn der Zeichensatz der Datenbank konvertiert wird, wirkt sich dies auf den Clob-Typ aus.

Blob-Typ, ein binäres großes Objekt variabler Länge mit einer Länge von bis zu 4 GB, wird hauptsächlich zum Speichern formatierter unstrukturierter Daten wie Bilder, Audio, Videos, Office-Dokumente usw. verwendet. Wenn der Datenbankzeichensatz konvertiert wird, ist der Blob-Typ nicht betroffen und Oracle Database ist es egal, welcher Inhalt gespeichert wird.

5. Zeilentyp

Jede Datensatzzeile in jeder Tabelle in der Oracle-Datenbank hat einen physischen Speicherort, d. h , die Zeilen-ID der Tabelle. Bei Pseudospalten bietet die Verwendung von Zeilen-ID als Where-Bedingung die höchste Zugriffseffizienz.

Obwohl rowid die höchste Zugriffseffizienz aufweist, müssen Sie in praktischen Anwendungen vorsichtig sein und auf zwei Probleme achten:

1) rowid speichert die physischen Daten von Tabellendatensätzen. Standort, Während der Datensortierung, Datensicherung und Migration ändert sich der physische Speicherort des Datensatzes;

2) rowid ist ein proprietärer Datentyp der Oracle-Datenbank und ist mit anderen Datenbanken nicht kompatibel.

6. Andere Datentypen

Im obigen Inhalt werden die am häufigsten verwendeten Datentypen in Oracle vorgestellt, die mehr als erfüllen können 99 % der Anwendungsszenarien.

Oracle bietet 22 verschiedene SQL-Datentypen, die möglicherweise nicht praktikabel sind, aber ich liste sie trotzdem alle auf, damit Sie sie verstehen können, ohne in die Tiefe zu gehen. In zwanzig Jahren habe ich nie einen anderen Datentyp verwendet.

char: Zeichenfolge fester Länge, die mit Leerzeichen aufgefüllt wird, um die maximale Länge zu erreichen. Ein ungleich Null char(10) enthält 10 Bytes an Informationen. Ein char-Feld kann bis zu 2000 Byte an Informationen speichern.

nchar: Zeichenfolge fester Länge, die Daten im Unicode-Format enthält. Nchar-Felder können bis zu 2000 Byte an Informationen speichern.

varchar2: Es ist ein Synonym für Varchar. Dies ist eine Zeichenfolge variabler Länge, die im Gegensatz zum Typ char Felder oder Variablen nicht mit Leerzeichen auf die maximale Länge auffüllt. varchar(10) kann 0–10 Bytes an Informationen enthalten und kann bis zu 4000 Bytes an Informationen speichern. Ab 12c können 32767 Bytes an Informationen gespeichert werden.

nvarchar2: Eine Zeichenfolge variabler Länge, die Daten im Unicode-Format enthält. Kann bis zu 4000 Byte an Informationen speichern. Ab 12c können 32767 Bytes an Informationen gespeichert werden.

raw: Ein binärer Datentyp variabler Länge. In diesem Datentyp gespeicherte Daten werden keiner Zeichensatzkonvertierung unterzogen.

Nummer: Kann Zahlen mit einer Genauigkeit von bis zu 38 Ziffern speichern. Diese Art von Daten wird in einem Format mit variabler Länge gespeichert, wobei die Länge zwischen 0 und 22 Byte liegt.

binary_float: 32-Bit-Gleitkommazahl mit einfacher Genauigkeit, die eine Genauigkeit von mindestens 6 Stellen unterstützt und 5 Byte Speicherplatz auf der Festplatte belegt.

binary_double: 64-Bit-Gleitkommazahl mit doppelter Genauigkeit, die eine Genauigkeit von mindestens 15 Stellen unterstützt und 9 Byte Speicherplatz auf der Festplatte belegt.

long: Dieser Typ kann bis zu 2 GB Zeichendaten speichern.

long raw: Der lange Rohtyp kann bis zu 2 GB binäre Informationen speichern # Datum: Dies ist ein 7-Byte-Datums-/Uhrzeitdatentyp mit fester Breite, der 7 Attribute enthält: Jahrhundert, Jahr im Jahrhundert, Monat, Tag des Monats, Stunde, Minute, Sekunde.

timestamp: Dies ist ein 7-Byte- oder 11-Byte-Datums-/Uhrzeitdatentyp mit fester Breite, der Sekundenbruchteile enthält.

Zeitstempel mit Zeitzone: Dies ist ein 13-Byte-Zeitstempel, der Zeitzonenunterstützung bietet.

Zeitstempel mit lokaler Zeitzone: Dies ist ein 7-Byte- oder 11-Byte-Datums-/Uhrzeitdatentyp mit fester Breite, der beim Einfügen und Lesen von Daten erfolgt.

Intervall Jahr zu Monat: Dies ist ein 5-Byte-Datentyp mit fester Breite, der zum Speichern eines Zeitraums verwendet wird.

Intervall von Tag zu Sekunde: Dies ist ein 11-Byte-Datentyp mit fester Breite, der zum Speichern eines Zeitraums verwendet wird. Speichern Sie Zeiträume als Tage/Stunden/Minuten/Sekunden, optional mit 9 Sekundenbruchteilen.

blob: Dieser Typ kann bis zu 4 GB Daten speichern.

clob: Dieser Typ kann bis zu 4 GB Daten speichern. Dieser Typ ist von der Konvertierung von Zeichensätzen betroffen.

nclob: Dieser Typ kann bis zu 4 GB Daten speichern. Dieser Typ ist von der Konvertierung von Zeichensätzen betroffen.

bfile: Dieser Datentyp kann ein Oracle-Verzeichnisobjekt und einen Dateinamen in der Datenbankspalte speichern, über den wir die Datei lesen können.

rowid: Es handelt sich tatsächlich um die Adresse der Zeile in der Datenbanktabelle, sie ist 10 Byte lang.

urowid: Es handelt sich um eine allgemeine Rowid, es gibt keine feste Rowid-Tabelle.

Das obige ist der detaillierte Inhalt vonWelche Datentypen gibt es bei Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!