pl sql operators control statements tutorial
Lær om forskellige PL SQL-operatører og kontrolerklæringer som if-then-else, for loop, while loop osv. Med eksempler på eksempelkoder:
I PL / SQL-kommandoer tutorial af PL / SQL-serien , vi lærte om kommandoer PL SQL INSERT, UPDATE, DELETE og SELECT med programmeringseksempler.
I denne artikel vil vi diskutere de forskellige operatorer, som PL / SQL understøtter som relationelle, logiske, aritmetiske og sammenligningsoperatorer. Vi skal også undersøge de kontroludtalelser, der bruges i vid udstrækning i PL / SQL.
PL / SQL-tilstand og iterative strukturer er forklaret detaljeret med eksempler her i denne vejledning.
oprettelse af et binært søgetræ i java
Hvad du vil lære:
PL SQL-operatører
En PL SQL-operatør instruerer compileren til at udføre aritmetiske og logiske operationer ved hjælp af et symbol.
Som standard har PL / SQL følgende operatortyper:
- Aritmetik
- Sammenligning
- Logisk
- Snor
- Relationel
# 1) Aritmetiske operatører
Symbol | Beskrivelse | |
---|---|---|
7 | OG | sammenhæng |
+ | Udfører tilføjelse af to operander. | |
* | Udfører multiplikation af to operander. | |
/ | Udfører opdeling af to operander. | |
- | Udfører subtraktion af to operander. | |
** | Udfører eksponentiel operation. |
Kodeimplementering med aritmetiske operatører:
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; /
Output af ovenstående kode skal være:
# 2) Relationsoperatører
Disse operatører udfører sammenlignings- og returværdier på boolsk.
Serienr. | Symbol | Beskrivelse |
---|---|---|
1 | > | Kontrollerer, om værdien af den venstre operand er større end højre. |
to | < | Kontrollerer, om værdien af den højre operand er større end venstre. |
3 | > = | Kontrollerer, om værdien af den venstre operand er større end lig med højre. |
4 | <= | Kontrollerer, om værdien af den højre operand er større end lig med venstre. |
5 | = | Kontrollerer, om to operander er ens. |
6 | ! =, ~ =, | Kontrollerer, om to operander ikke er ens. |
Kodeimplementering med relationelle operatører:
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; /
Output af ovenstående kode skal være:
# 3) Sammenligningsoperatører
Denne operatør giver output som enten sand, falsk eller nul værdi baseret på resultatet af at sammenligne en sætning med den anden.
Symbol | Beskrivelse |
---|---|
MELLEM | Kontrollerer, om en værdi ligger inden for et interval. |
I | Kontrollerer, om en værdi er lig med et medlems sæt. |
SYNES GODT OM | Kontrollerer, om en streng eller et tegn ligner et mønster. |
ER NULL | Kontrollerer, om en operand er lig med værdien Null. |
Kodeimplementering med sammenligningsoperatør:
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; /
Output af ovenstående kode skal være:
# 4) Logiske operatører
PL / SQL understøtter mere end en logisk operator. De handler på operander, som har boolsk karakter og giver også boolske resultater.
Serienr. | Symbol | Beskrivelse |
---|---|---|
1 | IKKE | Kendt som logisk IKKE. Hvis resultatet er sandt, gør det IKKE forkert. |
to | OG | Kendt som logisk OG. Hvis alle operander er sande, er resultatet sandt. |
3 | ELLER | Kendt som logisk ELLER. Hvis nogen af operanderne er sande, er resultatet sandt. |
Kodeimplementering med logiske operatører:
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; /
Output af ovenstående kode skal være:
Operatørens forrang
PL SQL-operatørprioritet er indstillet til at definere, hvordan en operation, der involverer en enkelt eller flere operatører eller mere end en operand, skal udføres. Operatørerne med højere prioritet beregnes først end de andre, mens operatørerne med samme prioritet manipuleres i ingen særlig rækkefølge.
Nedenstående tabel viser operatørerne fra høj til lav prioritet.
Serienr. | Symbol | Beskrivelse |
---|---|---|
1 | ** | eksponentiel operation |
to | +, - | tilføjelse, subtraktion |
3 | *, / | multiplikation, division |
4 | +, -, || | addition, subtraktion, sammenkædning |
5 | sammenligningsoperatører | |
6 | IKKE | negation |
8 | ELLER | inklusion |
Kontrolerklæringer i PL / SQL
Kontrolstrukturer i PL / SQL består af programstrukturer som f.eks iteration, sekvens, og udvælgelse . Formen for markering verificerer en betingelse, og derefter baseret på resultaterne af enten sand eller falsk behandler den næste blok kode i rækkefølge.
Formen for iteration kører en blok kode eller udsagn gentagne gange, indtil betingelsen er gyldig. Endelig behandler sekvensformen udsagnene en efter en i den rækkefølge, de er til stede.
Betingelseserklæring i PL SQL
I beslutningsscenarier anvendes betingelseserklæringer som IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF og CASE.
# 1) HVIS DENNE: Dette er en af de grundlæggende former for IF-udsagn. Den indeholder en kodeblok med nøgleordene ENDIF og THEN. Hvis resultatet af en betingelse er sandt, bliver den næste blok kode udført ellers ikke.
Struktur af IF-THEN:
IF condition THEN Block of code END IF;
Vi kan også holde en kort IF-DEN-blok på en enkelt linje som denne.
IF big > small THEN temp: = big; END IF;
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
# 2) IF-THEN-ELSE: Dette er den næste form for IF-sætning, der har ELSE-nøgleordet og derefter den næste blok med kode. Denne blok med ELSE-udsagn er valgfri, og den udføres, når betingelsen er FALSK.
Struktur af IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
# 3) IF-THEN-ELSIF: Denne betingede erklæring giver mulighed for at vælge blandt alternativerne. ELSE ... ELSE-kodeblok kan valgfrit komme efter IF-THEN-sætningen. Således bruges det, når der behandles flere gensidigt eksklusive valg.
En IF-THEN-kodeblok kan have ingen eller flere ELSIF'er, forudsat at de vises før ELSE-erklæringen. Når vi først støder på en ægte tilstand i en ELSIF-blok, vil andre ELSE- eller ELSIF'er blive ignoreret.
Struktur af 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;
Kodeimplementering med 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; /
Output af ovenstående kode er:
# 4) SAGSERKLÆRING: Denne betingede erklæring vælger en blok kode fra valgene. Men som IF-sætninger bruger CASE ikke boolsk input, men et udtryk, der hjælper med at vælge en af mulighederne.
Det sidste valg af CASE-sætningen er standard. SAGSOPGØRELSE er mere effektiv og mindre lang i forhold til IF-udsagn.
Opbygning af sagens erklæring:
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;
Kodeimplementering med 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; /
Output af ovenstående kode er:
# 5) SØGET CASE Erklæring: Denne betingede erklæring er blottet for enhver vælger, og NÅR kodeblokken giver kun boolske resultater og ikke nogen værdi af andre datatyper.
Struktur af SØGT SAG Erklæring:
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;
Kodeimplementering med SEARCHED CASE-erklæring:
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; /
Output af ovenstående kode skal være:
# 6) NESTED IF-THEN-ELSE: Denne betingede erklæring giver mulighed for at bruge ELSE IF eller IF-blok inden for en anden IF eller ELSE IF.
Struktur af 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;
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
Iterativ erklæring i PL SQL
Mens vi implementerer logik i PL / SQL, kan det være nødvendigt at behandle en blok af kode gentagne gange flere gange. Dette opnås ved hjælp af LOOP-udsagn. Disse er af tre typer, FOR-LOOP, WHILE-LOOP og LOOP.
# 1) PL SQL LOOPS
En LOOP har en grundlæggende struktur som nedenfor:
LOOP Block of code END LOOP;
Efter hver iteration peger programflowet tilbage til toppen af sløjfen, indtil en bestemt tilstand er opfyldt. I tilfælde af at vi ønsker at komme ud af sløjfen på grund af en situation, i så fald kan en EXIT-erklæring bruges.
# 2) PL SQL MED LOP
Denne sløjfe kører en blok kode flere gange, indtil betingelsen er gyldig. I begyndelsen af hver iteration kontrolleres loop-tilstanden. Hvis den er opfyldt, udføres kodeblokken.
Hvis betingelsen er nul eller ikke opfyldt, undgår man sløjfen, og den næste kode kode udføres.
Struktur af WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
# 3) PL SQL TIL LOOP
Denne type sløjfe tillader udførelse af en kodeblok til et bestemt antal gange. Begyndelsestrinet udføres en gang. Dette bruges primært til initialisering og erklæring af loop-variablerne. Derefter kontrolleres grænseværdierne (start- og slutområde). Hvis betingelsen er opfyldt, bliver kodeblokken inde i LOOP udført. Hvis ikke, flyttes programflowet til den følgende blok kode efter sløjfen.
Efter en iteration øges eller formindskes loop-tælleren med en. Hele processen fortsætter, indtil loop-tilstanden er opfyldt. Når tilstanden bliver FALSK, slutter sløjfen.
I PL / SQL kan start- og slutområdet for sløjfen ændres i løbetid. Tælleren til sløjfen skal være et heltal, et tal osv. (Som kan øges eller formindskes numerisk). Startværdien af tællervariablen kan være et hvilket som helst tal.
Opbygning af FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Kodeimplementering af 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; /
Output af ovenstående kode skal være:
# 4) NESTED LOOP
Denne type udsagn tillader den ene løkke over den anden. Den eksterne og interne loopstruktur kan være af samme eller forskellige typer. Efter hver gennemkørsel skal begge sløjfer køre med succes.
Struktur af indlejret løkke:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
Loop-etiketter i PL / SQL
I PL / SQL har vi mulighed for at mærke sløjferne, hvilket øger læsbarheden og betydningen af koden. Mærket er repræsenteret af dobbelte vinkelbeslag ( << og >> ) og er nævnt øverst i LOOP-erklæringen. Etiketten kan også placeres i slutningen af LOOP.
Mærkaten kan også beskrives for EXIT-udsagn, når den kommer ud af sløjfen.
Mærkets struktur:
<> LOOP Block of Code END LOOP;
Kodeimplementering med 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; /
Erklæringer om sekvenskontrol
Kontrolerklæringen bruges til at ændre strømmen af eksekvering af programmet.
# 1) AFSLUT
En EXIT-erklæring bryder en løkke eksplicit. Når EXIT findes i sløjfen, går sløjfen og programflow flytter til den næste blok med kode. Under forhold, hvor vi bruger indlejrede sløjfer, vil EXIT-sætningen først afslutte den indre sløjfe og derefter udføre den blok af kode, der vises umiddelbart efter den.
Kodeimplementering med 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; /
Output af ovenstående kode skal være:
# 2) FORTSÆT
Denne kontrolerklæring tillader sløjfen at komme ud og flytte til den næste iteration, der skal finde sted.
Kodeimplementering med FORTSÆT:
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; /
Output af ovenstående kode skal være:
# 3) GOTO
GOTO-sætningen flytter kontrolelementet til en entydigt mærket kodeblok ubetinget. Det er ikke en god programmeringsteknik at bruge GOTO-udsagn, fordi det reducerer læsbarhed og sporbarhed af kode.
Struktur af GOTO:
GOTO 60; .. .. <> Block of code 1;
Kodning af implementering med GOTO-sætningen:
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;
Output af ovenstående kode skal være:
Ofte stillede spørgsmål
Q # 1) Hvad er kontrolerklæringen i PL / SQL?
Svar: Kontrolsætningerne i PL / SQL er af de tre typer - loop-sætninger, sekventielle udsagn og kontrol-sætninger. Looperklæringen består af WHILE LOOP, FOR LOOP og basic LOOP.
Q # 2) Hvordan kontrollerer du for lighed i PL / SQL?
Svar: I PL / SQL har vi lighedsoperatoren, der kontrollerer for lighed.
For eksempel,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
Q # 3) Hvordan stopper du en uendelig sløjfe i PL / SQL?
Svar: Vi kan stoppe en uendelig løkke i PL / SQL ved hjælp af EXIT-udsagn. Vi er nødt til at holde EXIT-udsagnene inden for loop og ikke uden for loop.
Q # 4) Hvad er formålet med den betingede kontrolstruktur i PL / SQL?
Svar: Den betingede kontrolstruktur giver mulighed for at styre programmets flow afhængigt af nogle kriterier. Koden i programmet kører således ikke i rækkefølge. En blok kode bliver udført baseret på betingelsen.
Spørgsmål nr. 5) Hvad er de 6 relationelle operatører?
Svar: De relationelle operatører af PL / SQL er =,,! =, ==.
Q # 6) Hvad er de forskellige typer operatører?
Svar: De forskellige typer operatører i PL / SQL er angivet nedenfor:
- Bitvise operatører
- Opgaveoperatører
- Aritmetiske operatører
- Relationelle operatører
- Logiske operatører
Konklusion
Vi har dækket en stor del af PL / SQL i denne vejledning, der beskæftiger sig med emner som flere operatører og deres betydning med kodeeksempler.
Vi har også undersøgt PL SQL-kontroludtalelserne i detaljer. Kontroludtalelserne består af programstrukturer som iteration, tilstand og sekvens.
I den næste vejledning skal vi diskutere PL SQL-procedurer, funktioner, markører og mange flere relaterede emner.
Anbefalet læsning
- PL SQL-vejledning til begyndere med eksempler Hvad er PL / SQL
- Python-operatører
- Unix betingede erklæringer: hvis så andre og relationelle operatører
- Python-kontroludtalelser (Python fortsætter, bryder og passerer)
- Tutorial On C # Conditional Statements
- Kildekontrol eller versionskontrol i DevOps (Video Tutorial del 2 - blok 2)
- Sløjfer i C #: Kontroludtalelser og forskellige sløjfer med eksempler
- Tortoise SVN Tutorial: Revisions In Code Repository