Oracle PL / SQL Einfügen, Aktualisieren, Löschen & Wählen Sie Into (Beispiel)

Inhaltsverzeichnis:

Anonim

In diesem Tutorial lernen wir, wie man SQL in PL / SQL verwendet. SQL ist die eigentliche Komponente, die sich um das Abrufen und Aktualisieren von Daten in der Datenbank kümmert, während PL / SQL die Komponente ist, die diese Daten verarbeitet. In diesem Artikel wird außerdem erläutert, wie SQL innerhalb des PL / SQL-Blocks kombiniert wird.

In diesem Tutorial lernen Sie:

  • Daten einfügen
  • Datenaktualisierung
  • Daten löschen
  • Datenauswahl

DML-Transaktionen in PL / SQL

DML steht für Data Manipulation Language . Diese Anweisungen werden hauptsächlich verwendet, um die Manipulationsaktivität auszuführen. Es befasst sich mit den folgenden Operationen.

  • Daten einfügen
  • Datenaktualisierung
  • Daten löschen
  • Datenauswahl

In PL / SQL können wir die Datenmanipulation nur mit den SQL-Befehlen durchführen.

Daten einfügen

In PL / SQL können wir die Daten mit dem SQL-Befehl INSERT INTO in eine beliebige Tabelle einfügen. Dieser Befehl verwendet den Tabellennamen, die Tabellenspalte und die Spaltenwerte als Eingabe und fügt den Wert in die Basistabelle ein.

Der Befehl INSERT kann die Werte auch direkt aus einer anderen Tabelle mit der Anweisung 'SELECT' übernehmen, anstatt die Werte für jede Spalte anzugeben. Mit der Anweisung 'SELECT' können wir so viele Zeilen einfügen, wie die Basistabelle enthält.

Syntax:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Die obige Syntax zeigt den Befehl INSERT INTO. Der Tabellenname und die Werte sind Pflichtfelder, während Spaltennamen nicht obligatorisch sind, wenn die Einfügeanweisungen Werte für die gesamte Spalte der Tabelle enthalten.
  • Das Schlüsselwort 'VALUES' ist obligatorisch, wenn die Werte wie oben gezeigt separat angegeben werden.

Syntax:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Die obige Syntax zeigt den Befehl INSERT INTO, der die Werte mit dem Befehl SELECT direkt aus dem übernimmt.
  • Das Schlüsselwort 'VALUES' sollte in diesem Fall nicht vorhanden sein, da die Werte nicht separat angegeben werden.

Datenaktualisierung

Datenaktualisierung bedeutet einfach eine Aktualisierung des Werts einer Spalte in der Tabelle. Dies kann mit der Anweisung 'UPDATE' erfolgen. Diese Anweisung verwendet den Tabellennamen, den Spaltennamen und den Wert als Eingabe und aktualisiert die Daten.

Syntax:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Die obige Syntax zeigt das UPDATE. Das Schlüsselwort 'SET' weist die PL / SQL-Engine an, den Wert der Spalte mit dem angegebenen Wert zu aktualisieren.
  • Die 'WHERE'-Klausel ist optional. Wenn diese Klausel nicht angegeben wird, wird der Wert der genannten Spalte in der gesamten Tabelle aktualisiert.

Daten löschen

Datenlöschung bedeutet, einen vollständigen Datensatz aus der Datenbanktabelle zu löschen. Zu diesem Zweck wird der Befehl 'DELETE' verwendet.

Syntax:

BEGINDELETEFROM
WHERE ;END;
  • Die obige Syntax zeigt den Befehl DELETE. Das Schlüsselwort 'FROM' ist optional und mit oder ohne 'FROM'-Klausel verhält sich der Befehl genauso.
  • Die 'WHERE'-Klausel ist optional. Wenn diese Klausel nicht angegeben wird, wird die gesamte Tabelle gelöscht.

Datenauswahl

Datenprojektion / -abruf bedeutet, die erforderlichen Daten aus der Datenbanktabelle abzurufen. Dies kann erreicht werden, indem der Befehl 'SELECT' mit der Klausel 'INTO' verwendet wird. Der Befehl 'SELECT' ruft die Werte aus der Datenbank ab, und die Klausel 'INTO' weist diese Werte der lokalen Variablen des PL / SQL-Blocks zu.

Nachfolgend sind die Punkte aufgeführt, die in der Anweisung 'SELECT' berücksichtigt werden müssen.

  • Die Anweisung 'SELECT' sollte nur einen Datensatz zurückgeben, während die Klausel 'INTO' verwendet wird, da eine Variable nur einen Wert enthalten kann. Wenn die Anweisung 'SELECT' mehr als einen Wert zurückgibt, wird die Ausnahme 'TOO_MANY_ROWS' ausgelöst.
  • Die Anweisung 'SELECT' weist der Variablen in der Klausel 'INTO' den Wert zu. Daher muss mindestens ein Datensatz aus der Tabelle abgerufen werden, um den Wert zu füllen. Wenn kein Datensatz erhalten wurde, wird die Ausnahme 'NO_DATA_FOUND' ausgelöst.
  • Die Anzahl der Spalten und ihr Datentyp in der 'SELECT'-Klausel sollten mit der Anzahl der Variablen und ihren Datentypen in der' INTO'-Klausel übereinstimmen.
  • Die Werte werden in derselben Reihenfolge abgerufen und ausgefüllt, wie in der Anweisung angegeben.
  • Die 'WHERE'-Klausel ist optional und ermöglicht eine stärkere Einschränkung der Datensätze, die abgerufen werden sollen.
  • Die Anweisung 'SELECT' kann in der Bedingung 'WHERE' anderer DML-Anweisungen verwendet werden, um die Werte der Bedingungen zu definieren.
  • Die Anweisung 'SELECT' sollte bei Verwendung der Anweisungen 'INSERT', 'UPDATE' und 'DELETE' keine Klausel 'INTO' enthalten, da in diesen Fällen keine Variablen aufgefüllt werden.

Syntax:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Die obige Syntax zeigt den Befehl SELECT-INTO. Das Schlüsselwort 'FROM' ist obligatorisch und gibt den Tabellennamen an, aus dem die Daten abgerufen werden müssen.
  • Die 'WHERE'-Klausel ist optional. Wenn diese Klausel nicht angegeben wird, werden die Daten aus der gesamten Tabelle abgerufen.

Beispiel 1 : In diesem Beispiel wird gezeigt, wie DML-Operationen in PL / SQL ausgeführt werden. Wir werden die folgenden vier Datensätze in die emp-Tabelle einfügen.

EMP_NAME EMP_NO GEHALT MANAGER
BBB 1000 25000 AAA
XXX 1001 10000 BBB
JJJ 1002 10000 BBB
ZZZ 1003 7500 BBB

Dann werden wir das Gehalt von 'XXX' auf 15000 aktualisieren und den Mitarbeiterdatensatz 'ZZZ' löschen. Schließlich werden wir die Details des Mitarbeiters 'XXX' projizieren.

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

Ausgabe:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Code Erläuterung:

  • Codezeile 2-5 : Deklarieren der Variablen.
  • Codezeile 7-14 : Einfügen der Datensätze in die Tabelle emp.
  • Codezeile 15 : Festschreiben der Einfügetransaktionen.
  • Codezeile 17-19 : Aktualisierung des Gehalts des Mitarbeiters 'XXX' auf 15000
  • Codezeile 20 : Festschreiben der Aktualisierungstransaktion.
  • Codezeile 22 : Löschen des Datensatzes von 'ZZZ'
  • Codezeile 23 : Festschreiben der Löschtransaktion.
  • Codezeile 25-27 : Auswahl des Datensatzes von 'XXX' und Auffüllen in die Variablen l_emp_name, l_emp_no, l_salary, l_manager.
  • Codezeile 28-32 : Anzeigen des abgerufenen Datensatzwerts.