pl sql operators control statements tutorial
Lær om forskjellige PL SQL-operatører og kontrolluttalelser som if-then-else, for loop, while loop, etc. med eksempelkodeeksempler:
I PL / SQL-kommandoer opplæring av PL / SQL-serien , vi lærte om PL SQL INSERT, UPDATE, DELETE og SELECT kommandoer med programmeringseksempler.
I denne artikkelen vil vi diskutere de forskjellige operatørene som PL / SQL støtter, som relasjonelle, logiske, aritmetiske og sammenligningsoperatorer. Vi skal også undersøke kontrolluttalelsene som brukes mye i PL / SQL.
PL / SQL-tilstand og iterative strukturer er forklart i detalj med eksempler her i denne opplæringen.
kvalitetssikring og kvalitetskontrollforskjell
Hva du vil lære:
PL SQL-operatører
En PL SQL-operatør leder kompilatoren til å utføre aritmetiske og logiske operasjoner ved hjelp av et symbol.
Som standard har PL / SQL følgende operatortyper:
- Aritmetikk
- Sammenligning
- Logisk
- String
- Relasjonelt
# 1) Aritmetiske operatører
Symbol | Beskrivelse | |
---|---|---|
7 | OG | sammenheng |
+ | Utfører tillegg av to operander. | |
* | Utfører multiplikasjon av to operander. | |
/ | Utfører deling av to operander. | |
- | Utfører subtraksjon av to operander. | |
** | Utfører eksponentiell operasjon. |
Kodeimplementering med regneoperatø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; /
Resultatet av ovennevnte kode skal være:
# 2) Relasjonsoperatører
Disse operatørene utfører sammenlignings- og returverdiene på boolsk.
Serienummer | Symbol | Beskrivelse |
---|---|---|
en | > | Bekrefter om verdien til venstre operand er større enn høyre. |
to | < | Kontrollerer om verdien til høyre operand er større enn venstre. |
3 | > = | Bekrefter om verdien til venstre operand er større enn lik høyre. |
4 | <= | Kontrollerer om verdien til høyre operand er større enn lik venstre. |
5 | = | Bekrefter om to operander er like. |
6 | ! =, ~ =, | Bekrefter om to operander ikke er like. |
Kodeimplementering med relasjonsoperatø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; /
Resultatet av ovennevnte kode skal være:
# 3) Sammenligningsoperatører
Denne operatøren gir utdataene enten sanne, falske eller nullverdier basert på resultatet av å sammenligne en setning med den andre.
Symbol | Beskrivelse |
---|---|
MELLOM | Bekrefter om en verdi ligger i et område. |
I | Bekrefter om en verdi er lik et medlemssett. |
SOM | Bekrefter om en streng eller tegn ligner på et mønster. |
ER NULL | Bekrefter om en operand er lik verdien 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; /
Resultatet av ovennevnte kode skal være:
# 4) Logiske operatører
PL / SQL støtter mer enn en logisk operatør. De handler på operander som har boolsk natur og gir også boolske resultater.
Serienummer | Symbol | Beskrivelse |
---|---|---|
en | IKKE | Kjent som logisk IKKE. Hvis resultatet er sant, gjør det IKKE falskt. |
to | OG | Kjent som logisk OG. Hvis alle operandene er sanne, er resultatet sant. |
3 | ELLER | Kjent som logisk ELLER. Hvis noen av operandene er sanne, er resultatet sant. |
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; /
Resultatet av ovennevnte kode skal være:
Operatørens forrang
PL SQL-operatørprioritet er definert for å definere hvordan en operasjon som involverer en enkelt eller flere operatører eller mer enn en operand skal utføres. Operatørene med høyere prioritet beregnes først enn de andre mens operatørene med samme forrang manipuleres i ingen spesiell rekkefølge.
Tabellen nedenfor viser operatørene fra høy til lav prioritet.
Serienummer | Symbol | Beskrivelse |
---|---|---|
en | ** | eksponentiell operasjon |
to | +, - | tillegg, subtraksjon |
3 | *, / | multiplikasjon, divisjon |
4 | +, -, || | tillegg, subtraksjon, sammenføyning |
5 | sammenligningsoperatører | |
6 | IKKE | negasjon |
8 | ELLER | inkludering |
Kontrolluttalelser i PL / SQL
Kontrollstrukturene i PL / SQL består av programstrukturene som iterasjon, sekvens, og valg . Formen for valg verifiserer en tilstand, og deretter basert på resultatene av enten true eller false, behandler den neste blokken kode i rekkefølge.
Formen for iterasjon kjører en blokk med kode eller utsagn gjentatte ganger til tilstanden er gyldig. Til slutt behandler sekvensformen påstandene en etter en i den rekkefølgen de er tilstede.
Tilstandsuttalelse i PL SQL
I beslutningsscenarier brukes tilstandsuttalelsene som IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF og CASE.
# 1) HVIS DAN: Dette er en av de grunnleggende formene for IF-uttalelser. Den inneholder en kodeblokk med nøkkelordene ENDIF og THEN. Hvis resultatet av en tilstand er sant, blir neste blokk med kode utført, ellers ikke.
Struktur av IF-THEN:
IF condition THEN Block of code END IF;
Vi kan også holde en kort IF-DEN-blokk 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; /
Resultatet av ovennevnte kode skal være:
# 2) IF-THEN-ELSE: Dette er den neste formen for IF-setning som har ELSE-nøkkelordet og deretter neste blokk med kode. Denne blokken med ELSE-setninger er valgfri, og den kjøres når tilstanden er FALSE.
Struktur av 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; /
Resultatet av ovennevnte kode skal være:
# 3) IF-THEN-ELSIF: Denne betingede uttalelsen gir muligheten til å velge blant alternativene. ELSE ... ELSE-kodeblokk kan valgfritt komme etter IF-THEN-setningen. Dermed brukes den når du arbeider med flere gjensidig eksklusive valg.
En IF-THEN-kodeblokk kan ha ingen eller flere ELSIF-er, forutsatt at de vises før ELSE-setningen. Når vi møter en ekte tilstand i en ELSIF-blokk, vil andre ELSE- eller ELSIF-er bli ignorert.
Struktur av 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; /
Resultatet av koden ovenfor er:
# 4) SAGSERKLÆRING: Denne betingede setningen vil velge en kodeblokk fra valgene. Imidlertid, som IF-setninger, bruker CASE ikke boolsk inngang, men et uttrykk som hjelper til å velge ett av alternativene.
Det siste valget av CASE-setningen er standard. SAGSERKLÆRING er mer effektiv og mindre lang i forhold til IF-uttalelser.
Oppbygging av tilfelle:
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; /
Resultatet av koden ovenfor er:
# 5) SØKET CASE-uttalelse: Denne betingede utsagnet er blottet for enhver velger, og NÅR kodeblokken gir bare boolske resultater og ikke noen verdi av andre datatyper.
Struktur av SØKT CASE 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 Statement:
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; /
Resultatet av ovennevnte kode skal være:
# 6) NESTED IF-THEN-ELSE: Denne betingede uttalelsen gir bestemmelse om å bruke ELSE IF eller IF-blokk i en annen IF eller ELSE IF.
Struktur av 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; /
Resultatet av ovennevnte kode skal være:
Iterativ uttalelse i PL SQL
Mens vi implementerer logikk i PL / SQL, kan det hende vi må behandle en blokk med kode gjentatte ganger flere ganger. Dette oppnås ved hjelp av LOOP-uttalelser. Dette er av tre typer, FOR-LOOP, WHILE-LOOP og LOOP.
# 1) PL SQL LOOPS
En LOOP har en grunnleggende struktur som nedenfor:
LOOP Block of code END LOOP;
Etter hver iterasjon peker programflyten tilbake til toppen av løkken til en viss tilstand er oppfylt. I tilfelle vi ønsker å komme ut av løkken på grunn av en situasjon, i så fall kan en EXIT-setning brukes.
# 2) PL SQL MENS LØKKE
Denne sløyfen vil kjøre en blokk med kode flere ganger til tilstanden er gyldig. I begynnelsen av hver iterasjon blir sløyfetilstanden sjekket. Hvis den er oppfylt, blir kodeblokken utført.
Hvis betingelsen er null eller ikke oppfylt, unngås sløyfen og neste blokk med kode utføres.
Struktur av 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; /
Resultatet av ovennevnte kode skal være:
# 3) PL SQL FOR LOOP
Denne typen sløyfe tillater utførelse av en blokk med kode til et bestemt antall ganger. Starttrinnet utføres en gang. Dette brukes primært til initialisering og erklæring av loop-variablene. Deretter sjekkes grenseverdiene (start- og sluttområde). Hvis betingelsen er oppfylt, vil kodeblokken i LOOP bli utført. Hvis ikke, flyttes programflyten til følgende kodeblokk etter sløyfen.
Etter en iterasjon øker eller reduseres sløyfetelleren med en. Hele prosessen fortsetter til sløyfetilstanden er tilfredsstilt. Når tilstanden blir FALSE, slutter sløyfen.
I PL / SQL kan start- og sluttområdet for sløyfen endres på kjøretiden. Telleren for sløyfen skal være et helt tall, tall og så videre (som kan økes eller reduseres numerisk). Startverdien til tellervariabelen kan være et hvilket som helst tall.
Struktur av FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Kodeimplementering av 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; /
Resultatet av ovennevnte kode skal være:
# 4) NESTED LOOP
Denne typen utsagn tillater den ene løkken over den andre. Den eksterne og interne sløyfestrukturen kan være av samme eller forskjellige typer. Etter hver traversering må begge løkkene løpe vellykket.
Struktur av nestet 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; /
Resultatet av ovennevnte kode skal være:
Loop-etiketter i PL / SQL
I PL / SQL har vi tilgang til å merke løkkene som øker lesbarheten og betydningen av koden. Etiketten er representert med doble vinkelparenteser ( << og >> ) og er nevnt øverst i LOOP-uttalelsen. Etiketten kan også plasseres på slutten av LOOP.
Etiketten kan også beskrives for EXIT-utsagn mens den kommer ut av løkken.
Struktur av MERKER:
<> 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 sekvenskontroll
Kontrollerklæringen brukes til å endre gjennomføringsflyten av programmet.
# 1) AVSLUTT
En EXIT-uttalelse bryter en løkke eksplisitt. Når EXIT er funnet i sløyfen, går sløyfen og programflyten beveger seg til neste kodeblokk. Under forhold der vi bruker nestede sløyfer, vil EXIT-setningen først avslutte den indre sløyfen og deretter utføre kodeblokken som vises umiddelbart etter 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; /
Resultatet av ovennevnte kode skal være:
# 2) FORTSETT
Denne kontrollerklæringen gjør at løkken kan komme ut og gå til neste iterasjon som skal finne sted.
Kodeimplementering med FORTSETT:
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; /
Resultatet av ovennevnte kode skal være:
# 3) GOTO
GOTO-setningen flytter kontrollen til en unik merket blokk med kode ubetinget. Det er ikke en god programmeringsteknikk å bruke GOTO-setninger fordi det reduserer lesbarhet og sporbarhet av kode.
Struktur av GOTO:
GOTO 60; .. .. <> Block of code 1;
Koding implementering med GOTO uttalelsen:
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;
Resultatet av ovennevnte kode skal være:
ofte stilte spørsmål
Q # 1) Hva er kontrolluttalelsen i PL / SQL?
Svar: Kontrolluttalelsene i PL / SQL er av de tre typene - loop-setninger, sekvensielle setninger og kontrolluttalelser. Loop-setningen består av WHILE LOOP, FOR LOOP og basic LOOP.
Q # 2) Hvordan sjekker du for likhet i PL / SQL?
Svar: I PL / SQL har vi likhetsoperatøren som sjekker for likhet.
For eksempel,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
Spørsmål 3) Hvordan stopper du en uendelig sløyfe i PL / SQL?
Svar: Vi kan stoppe en uendelig løkke i PL / SQL ved hjelp av EXIT-setninger. Vi må holde EXIT-utsagnene innenfor loop og ikke utenfor loop.
Q # 4) Hva er formålet med den betingede kontrollstrukturen i PL / SQL?
Svar: Den betingede kontrollstrukturen gir muligheten til å kontrollere programflyten avhengig av noen kriterier. Dermed kjører ikke koden i programmet i rekkefølge. En blokk med kode blir utført basert på tilstanden.
Sp # 5) Hva er de seks relasjonsoperatørene?
Svar: Forholdsoperatørene til PL / SQL er =,,! =, ==.
Sp # 6) Hva er de forskjellige typene operatører?
Svar: De forskjellige typene operatører i PL / SQL er listet opp nedenfor:
- Bitvise operatører
- Oppdragsoperatører
- Aritmetiske operatører
- Relasjonsoperatører
- Logiske operatører
Konklusjon
Vi har dekket en stor del av PL / SQL i denne veiledningen som omhandler emner som flere operatører og deres betydning med kodeeksempler.
Vi har også utforsket PL SQL-kontrolluttalelsene i detalj. Kontrolluttalelsene består av programstrukturene som iterasjon, tilstand og sekvens.
I neste opplæring skal vi diskutere PL SQL-prosedyrer, funksjoner, markører og mange flere relaterte emner.
Anbefalt lesing
- PL SQL Tutorial for nybegynnere med eksempler Hva er PL / SQL
- Python-operatører
- Unix betingede uttalelser: hvis så andre og relasjonelle operatører
- Uttalelser om Python-kontroll (Python fortsetter, bryter og passerer)
- Tutorial on C # Conditional Statements
- Kildekontroll eller versjonskontroll i DevOps (Video Tutorial Part 2 - Block 2)
- Sløyfer i C #: Kontrollerklæringer og forskjellige sløyfer med eksempler
- Tortoise SVN Tutorial: Revisions In Code Repository