pl sql operators control statements tutorial
Erfahren Sie mehr über verschiedene PL SQL-Operatoren und Steueranweisungen wie if-then-else, for-Schleife, while-Schleife usw. mit Beispielcodebeispielen:
In dem PL / SQL-Befehle Tutorial der PL / SQL-Serie Wir haben anhand von Programmierbeispielen die Befehle PL SQL INSERT, UPDATE, DELETE und SELECT kennengelernt.
In diesem Artikel werden die verschiedenen von PL / SQL unterstützten Operatoren wie relationale, logische, arithmetische und Vergleichsoperatoren erläutert. Wir werden auch die Steueranweisungen untersuchen, die in PL / SQL häufig verwendet werden.
PL / SQL-Bedingungen und iterative Strukturen wurden hier in diesem Lernprogramm anhand von Beispielen ausführlich erläutert.
beste App zum Herunterladen von MP3-Songs
Was du lernen wirst:
PL SQL-Operatoren
Ein PL SQL-Operator weist den Compiler an, mithilfe eines Symbols arithmetische und logische Operationen auszuführen.
Standardmäßig verfügt PL / SQL über die folgenden Operatortypen:
- Arithmetik
- Vergleich
- Logisch
- String
- Relational
# 1) Arithmetische Operatoren
Symbol | Beschreibung | |
---|---|---|
7 | UND | Verbindung |
+ | Führt das Hinzufügen von zwei Operanden durch. | |
* * | Führt eine Multiplikation von zwei Operanden durch. | |
/. | Führt die Division von zwei Operanden durch. | |
- - | Führt eine Subtraktion von zwei Operanden durch. | |
** **. | Führt eine exponentielle Operation aus. |
Code-Implementierung mit arithmetischen Operatoren:
declare a number(5):= 2; b number(5):= 1; res number(10); sub number(10); mul number(10); div number(10); exp number(10); begin -- adding a and b and storing in res res:= a+b; -- subtracting b from a and storing in sub sub:= a-b; -- multiplying a and b and storing in mul mul:= a*b; -- dividing a and b and storing in div div:= a/b; -- exponential operation and storing in exp exp:= a**b; dbms_output.put_line('Sum value is '||res); dbms_output.put_line('Subtraction value is '||sub); dbms_output.put_line('Multiplication value is '||mul); dbms_output.put_line('Division value is '||div); dbms_output.put_line('Exponential value is '||exp); end; /
Die Ausgabe des obigen Codes sollte sein:
# 2) Vergleichsoperatoren
Diese Operatoren führen die Vergleichs- und Rückgabewerte in Boolean aus.
Seriennummer. | Symbol | Beschreibung |
---|---|---|
1 | > | Überprüft, ob der Wert des linken Operanden größer als der rechte ist. |
zwei | < | Überprüft, ob der Wert des rechten Operanden größer als der linke ist. |
3 | > = | Überprüft, ob der Wert des linken Operanden größer als gleich rechts ist. |
4 | <= | Überprüft, ob der Wert des rechten Operanden größer als gleich links ist. |
5 | = | Überprüft, ob zwei Operanden gleich sind. |
6 | ! =, ~ =, | Überprüft, ob zwei Operanden nicht gleich sind. |
Code-Implementierung mit relationalen Operatoren:
DECLARE a NUMBER := 5; b NUMBER := 12; BEGIN IF a != b THEN DBMS_OUTPUT.PUT_LINE('a is not equal to b'); ELSIF a = b THEN DBMS_OUTPUT.PUT_LINE('a is equal to b'); ELSE DBMS_OUTPUT.PUT_LINE ('Not sure of the input'); END IF; END; /
Die Ausgabe des obigen Codes sollte sein:
# 3) Vergleichsoperatoren
Dieser Operator gibt die Ausgabe entweder als wahr, falsch oder null an, basierend auf dem Ergebnis des Vergleichs einer Anweisung mit der anderen.
Symbol | Beschreibung |
---|---|
ZWISCHEN | Überprüft, ob ein Wert in einem Bereich liegt. |
IM | Überprüft, ob ein Wert einem Elementsatz entspricht. |
MÖGEN | Überprüft, ob eine Zeichenfolge oder ein Zeichen einem Muster ähnlich ist. |
IST NULL | Überprüft, ob ein Operand dem Wert Null entspricht. |
Code-Implementierung mit Vergleichsoperator:
DECLARE i INTEGER; -- NULL value is set by default BEGIN i := i*5; -- i is still NULL since NULL * 5 is NULL IF i IS NULL THEN DBMS_OUTPUT.PUT_LINE('i is NULL.'); END IF; END; /
Die Ausgabe des obigen Codes sollte sein:
# 4) Logische Operatoren
PL / SQL unterstützt mehr als einen logischen Operator. Sie wirken auf Operanden, die boolescher Natur sind, und liefern auch boolesche Ergebnisse.
Seriennummer. | Symbol | Beschreibung |
---|---|---|
1 | NICHT | Bekannt als logisches NICHT. Wenn das Ergebnis wahr ist, macht es es NICHT falsch. |
zwei | UND | Bekannt als logisches UND. Wenn alle Operanden wahr sind, ist das Ergebnis wahr. |
3 | ODER | Bekannt als logisches ODER. Wenn einer der Operanden wahr ist, ist das Ergebnis wahr. |
Code-Implementierung mit logischen Operatoren:
declare n1 number := 5; n2 number := 10; n3 number := 15; begin if (n1 n2 or n1 = 5) then dbms_output.put_line ('The condition is true'); else dbms_output.put_line ('The condition is false'); end if; end; /
Die Ausgabe des obigen Codes sollte sein:
Vorrang des Bedieners
Die Priorität des PL-SQL-Operators wird festgelegt, um zu definieren, wie eine Operation ausgeführt werden soll, an der ein einzelner oder mehrere Operatoren oder mehr als ein Operand beteiligt sind. Die Operatoren mit höherer Priorität werden zuerst berechnet als die anderen, während die Operatoren mit derselben Priorität in keiner bestimmten Reihenfolge bearbeitet werden.
In der folgenden Tabelle sind die Operatoren von hoher bis niedriger Priorität aufgeführt.
Seriennummer. | Symbol | Beschreibung |
---|---|---|
1 | ** **. | Exponentialoperation |
zwei | +, - | Addition Subtraktion |
3 | *, / | Multiplikation, Division |
4 | +, -, || | Addition, Subtraktion, Verkettung |
5 | Vergleichsoperatoren | |
6 | NICHT | Negation |
8 | ODER | Aufnahme |
Steueranweisungen in PL / SQL
Die Kontrollstrukturen in PL / SQL bestehen aus Programmstrukturen wie der Iteration, Sequenz, und Auswahl . Die Form der Auswahl überprüft eine Bedingung und verarbeitet dann basierend auf den Ergebnissen von wahr oder falsch den nächsten Codeblock der Reihe nach.
Die Form der Iteration führt einen Codeblock oder Anweisungen wiederholt aus, bis die Bedingung gültig ist. Schließlich verarbeitet die Form der Sequenz die Anweisungen einzeln in der Reihenfolge, in der sie vorhanden sind.
Bedingungsanweisung In PL SQL
In Entscheidungsszenarien werden die Bedingungsanweisungen wie IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF und CASE verwendet.
# 1) WENN-DANN: Dies ist eine der Grundformen von IF-Anweisungen. Es enthält einen Codeblock mit den Schlüsselwörtern ENDIF und THEN. Wenn das Ergebnis einer Bedingung wahr ist, wird der nächste Codeblock ausgeführt, andernfalls nicht.
Struktur von IF-THEN:
IF condition THEN Block of code END IF;
Wir können auch einen kurzen IF-THEN-Block in einer einzelnen Zeile wie dieser halten.
IF big > small THEN temp: = big; END IF;
Code-Implementierung mit IF-THEN:
DECLARE i number(10,2) := 15; BEGIN -- checking the condition IF( i > 2 ) THEN -- true condition dbms_output.put_line('i is greater than 1 ' ); END IF; dbms_output.put_line('the numeric value of i is '|| i); END; /
Die Ausgabe des obigen Codes sollte sein:
# 2) WENN-DANN-SONST: Dies ist die nächste Form der IF-Anweisung, die das Schlüsselwort ELSE und dann den nächsten Codeblock enthält. Dieser Block von ELSE-Anweisungen ist optional und wird ausgeführt, wenn die Bedingung FALSE ist.
Struktur von IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Code-Implementierung mit IF-THEN-ELSE:
DECLARE num number(10,2) := 150; BEGIN -- checking the condition IF( num > 100 ) THEN -- true condition dbms_output.put_line('num is greater than 100 '); ELSE dbms_output.put_line('num is lesser than 100 '); END IF; dbms_output.put_line('value of number is : ' || num); END; /
Die Ausgabe des obigen Codes sollte sein:
# 3) IF-THEN-ELSIF: Diese bedingte Anweisung bietet die Möglichkeit, unter den Alternativen auszuwählen. ELSE… ELSE-Codeblock kann optional nach der IF-THEN-Anweisung stehen. Daher wird es verwendet, wenn mehrere sich gegenseitig ausschließende Entscheidungen getroffen werden.
Ein IF-THEN-Codeblock kann keine oder mehrere ELSIFs enthalten, sofern sie vor der ELSE-Anweisung erscheinen. Sobald wir in einem ELSIF-Block auf eine echte Bedingung stoßen, werden andere ELSE oder ELSIFs ignoriert.
Struktur von IF-THEN-ELSIF:
IF condition 1 THEN Block of code 1 ELSIF condition 2 THEN Block of code 2 ELSE Block of code 3 END IF;
Code-Implementierung mit IF-THEN-ELSIF:
DECLARE num number(8,2) := 20; BEGIN IF ( num <15 ) THEN dbms_output.put_line('The num is greater than 15' ); ELSIF ( num = 15 ) THEN dbms_output.put_line('The num is 15' ); ELSIF ( num <= 20 ) THEN dbms_output.put_line('The num is less than equal to 20'); ELSE dbms_output.put_line('The num is invalid '); END IF; dbms_output.put_line('The num is : '|| num); END; /
Die Ausgabe des obigen Codes lautet:
# 4) FALLERKLÄRUNG: Diese bedingte Anweisung wählt einen Codeblock aus den Auswahlmöglichkeiten aus. Wie bei IF-Anweisungen verwendet CASE jedoch keine boolesche Eingabe, sondern einen Ausdruck, mit dessen Hilfe eine der Optionen ausgewählt werden kann.
Die letzte Auswahl der CASE-Anweisung ist die Standardauswahl. CASE STATEMENT ist effizienter und weniger langwierig als IF-Anweisungen.
Struktur der FALLERKLÄRUNG:
CASE selector WHEN 'condition 1' THEN block of code 1; WHEN 'condition2' THEN block of code 2; WHEN 'condition 3' THEN block of code 3; ... ELSE default case END CASE;
Code-Implementierung mit CASE STATEMENT:
DECLARE age number(5) := 15; BEGIN CASE age when '1' then dbms_output.put_line('Infant'); when '5' then dbms_output.put_line('In school'); when '15' then dbms_output.put_line('High school'); else dbms_output.put_line('Qualified for class 10 '); END CASE; END; /
Die Ausgabe des obigen Codes lautet:
# 5) SEARCHED CASE Statement: Diese bedingte Anweisung enthält keinen Selektor, und der WHEN-Codeblock gibt nur boolesche Ergebnisse und keinen Wert anderer Datentypen aus.
Struktur des SEARCHED CASE Statement:
CASE WHEN 'condition 1' THEN block of code 1; WHEN 'condition 2' THEN block of code 2; WHEN 'condition 3' THEN block of code 3; ... ELSE default case END CASE;
Code-Implementierung mit SEARCHED CASE-Anweisung:
DECLARE model varchar(10) := '4'; BEGIN case when model = '1' then dbms_output.put_line('FIAT'); when model = '2' then dbms_output.put_line('TOYOTA'); when model = '3' then dbms_output.put_line('MARUTI'); when model = '4' then dbms_output.put_line('HYUNDAI'); else dbms_output.put_line('Premium MODEL'); end case; END; /
Die Ausgabe des obigen Codes sollte sein:
# 6) NESTED IF-THEN-ELSE: Diese bedingte Anweisung sieht vor, dass ELSE IF oder IF-Block in einem anderen IF oder ELSE IF verwendet werden.
Struktur von NESTED IF-THEN-ELSE:
IF condition 1 THEN Block of code 1 IF condition 2 THEN Block of code 2 END IF; ELSE Block of code 3 when condition 1 is false END IF;
Code-Implementierung mit NESTED IF-THEN-ELSE:
DECLARE i number(10,2) := 65; j number(5) := 10; BEGIN -- checking the condition IF( i > 50 ) THEN -- if true move to the next IF statement IF( j <15 ) THEN dbms_output.put_line('In the nested if block' ); END IF; END IF; dbms_output.put_line('The value of first number is : ' || i ); dbms_output.put_line('The value of second number is : ' || j ); END; /
Die Ausgabe des obigen Codes sollte sein:
Iterative Anweisung In PL SQL
Während der Implementierung der Logik in PL / SQL müssen wir einen Codeblock möglicherweise mehrmals wiederholt verarbeiten. Dies wird mit Hilfe von LOOP-Anweisungen erreicht. Es gibt drei Arten: FOR-LOOP, WHILE-LOOP und LOOP.
# 1) PL SQL LOOPS
Eine LOOP hat eine Grundstruktur wie folgt:
LOOP Block of code END LOOP;
Nach jeder Iteration zeigt der Programmablauf zurück zum Anfang der Schleife, bis eine bestimmte Bedingung erfüllt ist. In dem Fall, dass wir aufgrund einer Situation aus der Schleife herauskommen möchten, kann in diesem Fall eine EXIT-Anweisung verwendet werden.
# 2) PL SQL WHILE LOOP
Diese Schleife führt einen Codeblock mehrmals aus, bis die Bedingung gültig ist. Zu Beginn jeder Iteration wird die Schleifenbedingung überprüft. Wenn es erfüllt ist, wird der Codeblock ausgeführt.
Wenn die Bedingung null ist oder nicht erfüllt ist, wird die Schleife vermieden und der nächste Codeblock ausgeführt.
Struktur von WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Code-Implementierung mit WHILE LOOP:
DECLARE num number(10,1) := 3; BEGIN WHILE num <4 LOOP dbms_output.put_line('The value of number: ' || num); num := num + 1; END LOOP; END; /
Die Ausgabe des obigen Codes sollte sein:
# 3) PL SQL FOR LOOP
Diese Art von Schleife ermöglicht die Ausführung eines Codeblocks bis zu einer bestimmten Anzahl von Malen. Der Anfangsschritt wird einmal ausgeführt. Dies wird hauptsächlich zur Initialisierung und Deklaration der Schleifenvariablen verwendet. Anschließend werden die Grenzwerte (Start- und Endbereich) überprüft. Wenn die Bedingung erfüllt ist, wird der Codeblock in der LOOP ausgeführt. Wenn nicht, wechselt der Programmablauf nach der Schleife zum folgenden Codeblock.
Nach einer Iteration erhöht oder verringert sich der Schleifenzähler um eins. Der gesamte Prozess wird fortgesetzt, bis die Schleifenbedingung erfüllt ist. Wenn die Bedingung FALSE wird, endet die Schleife.
In PL / SQL kann der Start- und Endbereich der Schleife zur Laufzeit geändert werden. Der Zähler für die Schleife sollte eine Ganzzahl, eine Zahl usw. sein (die numerisch erhöht oder verringert werden kann). Der Startwert der Zählervariablen kann eine beliebige Zahl sein.
Struktur von FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Code-Implementierung von FOR LOOP:
DECLARE num number(10,1); BEGIN FOR num in 1.. 5 LOOP dbms_output.put_line('The num is:' || num); END LOOP; END; /
Die Ausgabe des obigen Codes sollte sein:
# 4) NESTED LOOP
Diese Art von Anweisung ermöglicht eine Schleife über die andere. Die externe und interne Schleifenstruktur können vom gleichen oder unterschiedlichen Typ sein. Nach jedem Durchlauf müssen beide Schleifen erfolgreich ausgeführt werden.
Struktur der verschachtelten Schleife:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Code-Implementierung mit NESTED LOOP:
BEGIN FOR i IN 1..2 LOOP FOR j IN 1..2 LOOP DBMS_OUTPUT.PUT_LINE('The value of i is ' || i); DBMS_OUTPUT.PUT_LINE('The value of j is ' || j); END LOOP; END LOOP; END; /
Die Ausgabe des obigen Codes sollte sein:
Schleifenbeschriftungen in PL / SQL
In PL / SQL können die Schleifen beschriftet werden, wodurch die Lesbarkeit und Bedeutung des Codes verbessert wird. Das Etikett wird durch doppelte spitze Klammern dargestellt ( << und >> ) und werden oben in der LOOP-Anweisung erwähnt. Das Etikett kann auch am Ende der Schleife platziert werden.
Das Label kann auch für EXIT-Anweisungen beschrieben werden, wenn Sie die Schleife verlassen.
Struktur der ETIKETTEN:
<> LOOP Block of Code END LOOP;
Code-Implementierung mit LOOP LABEL:
BEGIN <> FOR i IN 1..2 LOOP <> FOR j IN 1..2 LOOP DBMS_OUTPUT.PUT_LINE('The value of i is ' || i); DBMS_OUTPUT.PUT_LINE('The value of j is ' || j); END LOOP; END LOOP; END; /
Sequenzsteuerungsanweisungen
Die Steueranweisung wird verwendet, um den Ausführungsfluss des Programms zu ändern.
# 1) BEENDEN
Eine EXIT-Anweisung unterbricht eine Schleife explizit. Wenn EXIT in der Schleife gefunden wird, wird die Schleife unterbrochen und der Programmfluss wechselt zum nächsten Codeblock. Unter Bedingungen, in denen verschachtelte Schleifen verwendet werden, beendet die EXIT-Anweisung zuerst die innere Schleife und führt dann den unmittelbar danach angezeigten Codeblock aus.
Code-Implementierung mit EXIT:
DECLARE num number(10,1) := 15; BEGIN -- loop condition WHILE num <20 LOOP dbms_output.put_line ('The num is: ' || num); num := num + 1; IF mod(num, 2) = 0 THEN -- exit from loop EXIT; END IF; END LOOP; END; /
Die Ausgabe des obigen Codes sollte sein:
# 2) WEITER
Mit dieser Steueranweisung kann die Schleife herauskommen und zur nächsten Iteration übergehen.
Code-Implementierung mit WEITER:
DECLARE num number(10,1) := 5; BEGIN -- while loop execution WHILE num <9 LOOP dbms_output.put_line ('The number is : ' || num); num := num + 1; IF mod(num,2) = 0 THEN num := num + 1; CONTINUE; END IF; END LOOP; END; /
Die Ausgabe des obigen Codes sollte sein:
# 3) GOTO
Die GOTO-Anweisung verschiebt das Steuerelement bedingungslos in einen eindeutig gekennzeichneten Codeblock. Es ist keine gute Programmiertechnik, GOTO-Anweisungen zu verwenden, da dies die Lesbarkeit und Rückverfolgbarkeit von Code verringert.
Struktur von GOTO:
GOTO 60; .. .. <> Block of code 1;
Codierungsimplementierung mit der GOTO-Anweisung:
BEGIN GOTO message_two; <> DBMS_OUTPUT.PUT_LINE( 'PLSQL Tutorial' ); GOTO message_third; <> DBMS_OUTPUT.PUT_LINE( 'Software Test Help!' ); GOTO message_one; <> DBMS_OUTPUT.PUT_LINE( 'PLSQL Control Statement' ); END;
Die Ausgabe des obigen Codes sollte sein:
Häufig gestellte Fragen
F # 1) Wie lautet die Steueranweisung in PL / SQL?
Antworten: Es gibt drei Arten von Steueranweisungen in PL / SQL: Schleifenanweisungen, sequentielle Anweisungen und Steueranweisungen. Die Schleifenanweisung besteht aus WHILE LOOP, FOR LOOP und Basic LOOP.
Q # 2) Wie prüft man die Gleichheit in PL / SQL?
Antworten: In PL / SQL haben wir den Gleichheitsoperator, der auf Gleichheit prüft.
Zum Beispiel,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
F # 3) Wie stoppen Sie eine Endlosschleife in PL / SQL?
Antworten: Mit Hilfe von EXIT-Anweisungen können wir eine Endlosschleife in PL / SQL stoppen. Wir müssen die EXIT-Anweisungen innerhalb der Schleife und nicht außerhalb der Schleife halten.
F # 4) Was ist der Zweck der bedingten Kontrollstruktur in PL / SQL?
Antworten: Die bedingte Steuerungsstruktur bietet die Möglichkeit, den Programmfluss in Abhängigkeit von einigen Kriterien zu steuern. Daher wird der Code im Programm nicht nacheinander ausgeführt. Ein Codeblock wird basierend auf der Bedingung ausgeführt.
F # 5) Was sind die 6 Vergleichsoperatoren?
Antworten: Die Vergleichsoperatoren von PL / SQL sind = ,,,! =, ==.
F # 6) Was sind die verschiedenen Arten von Operatoren?
Antwort: Die verschiedenen Arten von Operatoren in PL / SQL sind unten aufgeführt:
- Bitweise Operatoren
- Zuweisungsoperatoren
- Rechenzeichen
- Vergleichsoperatoren
- Logische Operatoren
Fazit
Wir haben einen großen Teil von PL / SQL in diesem Tutorial behandelt, das sich mit Themen wie den mehreren Operatoren und deren Bedeutung anhand von Codebeispielen befasst.
Außerdem haben wir die PL SQL-Steueranweisungen im Detail untersucht. Die Steueranweisungen bestehen aus den Programmstrukturen wie Iteration, Bedingung und Sequenz.
Im nächsten Tutorial werden wir die PL SQL-Prozeduren, -Funktionen, -Cursor und viele weitere verwandte Themen diskutieren.
Literatur-Empfehlungen
- PL SQL Tutorial für Anfänger mit Beispielen | Was ist PL / SQL?
- Python-Operatoren
- Unix-bedingte Anweisungen: Wenn dann andere und relationale Operatoren
- Python-Steueranweisungen (Python Continue, Break and Pass)
- Tutorial zu C # -Bedingungsanweisungen
- Quellcodeverwaltung oder Versionskontrolle in DevOps (Video-Tutorial Teil 2 - Block 2)
- Schleifen in C #: Steueranweisungen und verschiedene Schleifen mit Beispielen
- Schildkröte SVN Tutorial: Überarbeitungen im Code Repository