Heim  >  Artikel  >  Datenbank  >  Grundlegende Operationen und Funktionsweise von LOB

Grundlegende Operationen und Funktionsweise von LOB

WBOY
WBOYnach vorne
2023-09-02 19:25:11908Durchsuche

Grundlegende Operationen und Funktionsweise von LOB

LOB oder Large Object ist ein Datentyp in einem Datenbankverwaltungssystem (DBMS), der zum Speichern großer Mengen unstrukturierter Daten wie Text, Bilder und Videos verwendet wird. Der LOB-Datentyp eignet sich zum Speichern und Bearbeiten von Daten, die nicht in eine herkömmliche Zeilen-Spalten-Struktur passen, z. B. Dokumente, Grafiken oder Audiodateien.

In diesem Artikel werden wir die grundlegenden Operationen und Arbeitsprinzipien von LOB-Datentypen in DBMS und SQL untersuchen. Wir werden auch Beispiele dafür bereitstellen, wie LOB-Datentypen in SQL verwendet werden, um große Mengen unstrukturierter Daten zu speichern und zu bearbeiten.

LOB-Datentyp

Es gibt verschiedene Arten von LOB-Daten, darunter −

  • BLOB (Binary Large Object)− Ein BLOB ist ein Satz binärer Daten, beispielsweise eine Bild-, Audio- oder Videodatei. BLOB-Daten werden in einer Bytefolge gespeichert und haben keinen bestimmten Zeichensatz.

  • CLOB (Character Large Object) – CLOB ist eine Sammlung von Zeichendaten, z. B. Text Dokument oder HTML-Datei. CLOB-Daten werden als Zeichenfolge gespeichert und haben Ein bestimmter Zeichensatz, z. B. UTF-8 oder ASCII

  • NCLOB (National Character Large Object) − NCLOB ähnelt CLOB, wird jedoch zum Speichern von Zeichendaten unter Verwendung nationaler Zeichensätze (z. B. Chinesisch, Japanisch oder Koreanisch) verwendet.

So funktioniert der LOB-Datentyp

LOB-Datentypen werden in einem speziellen Bereich der Datenbank gespeichert, dem sogenannten LOB-Speicherbereich. Dadurch können LOB-Daten getrennt vom Rest der Datenbank gespeichert und abgerufen werden, was die Leistung und Effizienz bei der Verarbeitung großer Mengen unstrukturierter Daten verbessert.

Der Zugriff auf LOB-Daten erfolgt mithilfe von Zeigern, bei denen es sich um Verweise auf den Speicherort der LOB-Daten im LOB-Speicherbereich handelt. Die Zeiger werden zusammen mit den restlichen Daten in der Datenbank gespeichert, die eigentlichen LOB-Daten werden jedoch im LOB-Speicherbereich gespeichert. Dadurch kann die Datenbank schnell und effizient auf LOB-Daten zugreifen, ohne dass das gesamte LOB in der Datenbank selbst gespeichert werden muss.

LOB-Spaltenstatus

LOB-Spalten können einen von drei Zuständen haben -

  • NULL − LOB-Spalte enthält keine Daten.

  • EMPTY – LOB-Spalte enthält keine Daten und hat die Länge Null.

  • gefüllt – LOB-Spalte enthält Daten und hat eine Länge größer als Null.

Der Status von LOB-Spalten kann mithilfe der Prädikate IS NULL und IS EMPTY ermittelt werden.

-- Check if a LOB column is NULL
SELECT doc_id
FROM documents
WHERE doc_text IS NULL;

-- Check if a LOB column is EMPTY
SELECT doc_id
FROM documents
WHERE doc_text IS EMPTY;

-- Check if a LOB column is populated
SELECT doc_id
FROM documents
WHERE doc_text IS NOT NULL AND doc_text IS NOT EMPTY;

Es ist wichtig zu beachten, dass eine LOB-Spalte den Status „EMPTY“ haben kann, auch wenn ihre Länge ungleich Null ist. Dies kann auftreten, wenn die LOB-Spalte nur Leerzeichen oder Steuerzeichen enthält. Um dies zu überprüfen, können Sie mit der LENGTH-Funktion die tatsächliche Länge der LOB-Daten ermitteln.

-- Check if a LOB column is EMPTY but has a non-zero length
SELECT doc_id
FROM documents
WHERE doc_text IS NOT NULL AND doc_text IS EMPTY AND LENGTH(doc_text) > 0;

Grundlegende Operationen von LOB-Daten

In SQL können mehrere grundlegende Operationen an LOB-Daten ausgeführt werden, darunter -

LOB-Daten einfügen – LOB-Daten können mit der INSERT-Anweisung in die Datenbank eingefügt werden. LOB-Daten können als Zeichenfolgen, Dateien oder Programmvariablen angegeben werden.

-- Insert a BLOB from a file
INSERT INTO images (image_id, image)
VALUES (1, BFILENAME('IMAGE_DIR', 'image1.jpg'));

-- Insert a CLOB from a string literal
INSERT INTO documents (doc_id, doc_text)
VALUES (1, 'This is the text of the document.');

-- Insert a NCLOB from a program variable
DECLARE
   doc_text CLOB;
BEGIN
   doc_text := 'WELCOME';
   INSERT INTO documents (doc_id, doc_text)
   VALUES (2, doc_text);
END;

LOB-Daten aktualisieren – LOB-Daten können mit der UPDATE-Anweisung aktualisiert werden. LOB-Daten können als Zeichenfolgenliterale, Dateien oder Programmvariablen angegeben werden.

-- Update a BLOB with a file
UPDATE images
SET image = BFILENAME('IMAGE_DIR', 'image2.jpg')
WHERE image_id = 1;

-- Update a CLOB with a string literal
UPDATE documents
SET doc_text = 'This is the updated text of the document.'
WHERE doc_id = 1;

-- Update a NCLOB with a program variable
DECLARE
doc_text CLOB;
BEGIN
doc_text := 'WELCOME';
UPDATE documents
SET doc_text = doc_text
WHERE doc_id = 2;
END;

LOB-Daten auswählen – LOB-Daten können mit der „SELECT“-Anweisung aus der Datenbank abgerufen werden. LOB-Daten können als String zurückgegeben oder in eine Datei geschrieben werden.

-- Select a BLOB and write it to a file
SELECT image
INTO BFILENAME('IMAGE_DIR', 'image3.jpg')
FROM images
WHERE image_id = 1;

-- Select a CLOB and return it as a string
SELECT doc_text
FROM documents
WHERE doc_id = 1;

-- Select a NCLOB and return it as a string
SELECT doc_text
FROM documents
WHERE doc_id = 2;

LOB-Daten löschen − Mit der DELETE-Anweisung können Sie LOB-Daten aus der Datenbank löschen.

-- Delete LOB data
DELETE FROM images
WHERE image_id = 1;

DELETE FROM documents
WHERE doc_id = 1;

DELETE FROM documents
WHERE doc_id = 2;

Erweiterte Vorgänge für LOB-Daten

Zusätzlich zu den oben beschriebenen Grundoperationen können mehrere erweiterte Operationen für LOB-Daten in SQL ausgeführt werden.

LOB-Daten durchsuchen

Der

LIKE-Operator kann verwendet werden, um nach bestimmten Mustern in LOB-Daten zu suchen. Das DBMS_LOB-Paket bietet außerdem mehrere Funktionen zum Suchen und Bearbeiten von LOB-Daten.

-- Search a CLOB for a specific pattern
SELECT doc_id
FROM documents
WHERE doc_text LIKE '%specific pattern%';

-- Use the INSTR function to search a CLOB
SELECT doc_id
FROM documents
WHERE INSTR(doc_text, 'specific pattern') > 0;

-- Use the SUBSTR function to extract a portion of a CLOB
SELECT SUBSTR(doc_text, 1, 50)
FROM documents
WHERE doc_id = 1;

Vergleichen Sie LOB-Daten

Der

=-Operator kann verwendet werden, um LOB-Daten auf Gleichheit zu vergleichen. Das DBMS_LOB-Paket stellt außerdem die COMPARE-Funktion zum Vergleichen von LOB-Daten bereit.

-- Compare LOB data for equality
SELECT doc_id
FROM documents
WHERE doc_text = 'This is the text of the document.';

-- Use the COMPARE function to compare LOB data
SELECT doc_id
FROM documents
WHERE COMPARE(doc_text, 'This is the text of the document.') = 0;

LOB-Daten abschneiden

Das DBMS_LOB-Softwarepaket bietet die TRUNCATE-Funktion, um LOB-Daten auf eine bestimmte Länge zu kürzen.

-- Truncate a CLOB to 50 characters
UPDATE documents
SET doc_text = TRUNCATE(doc_text, 50)
WHERE doc_id = 1;

LOB-Daten kopieren

Das DBMS_LOB-Paket bietet die COPY-Funktion zum Kopieren von LOB-Daten von einem LOB in ein anderes.

-- Copy CLOB data from one row to another
DECLARE
   source_doc CLOB;
   target_doc CLOB;
BEGIN
   SELECT doc_text INTO source_doc FROM documents WHERE doc_id = 1;
   SELECT doc_text INTO target_doc FROM documents WHERE doc_id = 2;
   COPY(source_doc, target_doc);
   UPDATE documents SET doc_text = target_doc WHERE doc_id = 2;
END;

LOB-Daten verbinden

Das DBMS_LOB-Paket bietet die CONCATENATE-Funktion, um zwei LOBs miteinander zu verbinden.

-- Concatenate two CLOBs together
DECLARE
   doc1 CLOB;
   doc2 CLOB;
   doc3 CLOB;
BEGIN
   SELECT doc_text INTO doc1 FROM documents WHERE doc_id = 1;
   SELECT doc_text INTO doc2 FROM documents WHERE doc_id = 2;
   doc3 := CONCATENATE(doc1, doc2);
   INSERT INTO documents (doc_id, doc_text) VALUES (3, doc3);
END;

Fazit

In diesem Artikel haben wir die grundlegenden Operationen und Arbeitsprinzipien von LOB-Datentypen in DBMS und SQL untersucht. Der LOB-Datentyp eignet sich zum Speichern und Bearbeiten großer Mengen unstrukturierter Daten wie Text, Bilder und Videos. Wir bieten auch Beispiele für die Verwendung des LOB-Datentyps in SQL zum Speichern, Aktualisieren, Auswählen und Löschen großer Mengen unstrukturierter Daten sowie für die Durchführung erweiterter Vorgänge wie Suchen, Vergleichen, Abschneiden, Kopieren und Zusammenführen von LOB-Daten.

Das obige ist der detaillierte Inhalt vonGrundlegende Operationen und Funktionsweise von LOB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen