pl sql operators control statements tutorial
Spoznajte različne operaterje in nadzorne stavke PL SQL, na primer if-then-else, for loop, while loop itd., S primeri vzorčne kode:
V PL / SQL ukazi vadnica PL / SQL serije , smo se seznanili z ukazi PL SQL INSERT, UPDATE, DELETE in SELECT s primeri programiranja.
V tem članku bomo obravnavali različne operaterje, ki jih PL / SQL podpira, kot so relacijski, logični, aritmetični in primerjalni operaterji. Preučili bomo tudi kontrolne izjave, ki se pogosto uporabljajo v PL / SQL.
Pogoji PL / SQL in iterativne strukture so podrobno razloženi s primeri v tej vadnici.
kako dobiti varnostni ključ za wifi -
Kaj se boste naučili:
PL SQL operaterji
Operater PL SQL usmerja prevajalnika, da izvaja aritmetične in logične operacije s pomočjo simbola.
PL / SQL ima privzeto naslednje vrste operaterjev:
- Aritmetika
- Primerjava
- Logično
- Vrvica
- Relacijski
# 1) Aritmetični operaterji
Simbol | Opis | |
---|---|---|
7. | IN | veznik |
+ | Izvede dodajanje dveh operandov. | |
* | Izvede množenje dveh operandov. | |
/ | Izvede delitev dveh operandov. | |
- | Izvede odštevanje dveh operandov. | |
** | Izvaja eksponentno operacijo. |
Izvajanje kode z aritmetičnimi operatorji:
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; /
Rezultat zgornje kode mora biti:
# 2) Relacijski operaterji
Ti operaterji izvajajo vrednosti primerjave in vrnitve v logični vrednosti.
Serijska številka. | Simbol | Opis |
---|---|---|
1. | > | Preveri, ali je vrednost levega operanda večja od desne. |
dva | < | Preveri, ali je vrednost desnega operanda večja od leve. |
3. | > = | Preveri, ali je vrednost levega operanda večja od desne. |
4. | <= | Preveri, ali je vrednost desnega operanda večja od leve. |
5. | = | Preveri, ali sta dva operanda enaka. |
6. | ! =, ~ =, | Preveri, če dva operanda nista enaka. |
Izvajanje kode z relacijskimi operaterji:
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; /
Rezultat zgornje kode mora biti:
# 3) Primerjalni operaterji
Ta operater daje rezultat kot resnično, napačno ali ničelno vrednost na podlagi rezultata primerjave enega stavka z drugim.
Simbol | Opis |
---|---|
MED | Preveri, ali je vrednost v območju. |
IN | Preveri, ali je vrednost enaka naboru članov. |
LIKE | Preveri, ali je niz ali znak podoben vzorcu. |
JE NULL | Preveri, ali je operand enak vrednosti Null. |
Izvajanje kode z operaterjem primerjave:
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; /
Rezultat zgornje kode mora biti:
# 4) Logični operaterji
PL / SQL podpira več kot en logični operater. Delujejo na operale, ki so logične narave in dajejo tudi logične rezultate.
Serijska številka. | Simbol | Opis |
---|---|---|
1. | NE | Znano kot logično NE. Če je rezultat resničen, potem NE pomeni, da je napačen. |
dva | IN | Znano kot logično IN. Če so vsi operandi resnični, je rezultat resničen. |
3. | ALI | Znano kot logično ALI. Če je kdo od operandov resničen, je rezultat resničen. |
Izvajanje kode z logičnimi operatorji:
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; /
Rezultat zgornje kode mora biti:
Prednost operaterja
Prednost operaterja PL SQL je nastavljena, da določi, kako se izvede operacija, ki vključuje enega ali več operaterjev ali več operandov. Operaterji z višjo prednostjo se izračunajo najprej kot drugi, medtem ko se z operaterji z enako prednostjo ne manipulira v nobenem zaporedju.
Spodnja tabela našteva operaterje od prednostnih vrst do visokih do nizkih.
Serijska številka. | Simbol | Opis |
---|---|---|
1. | ** | eksponentno delovanje |
dva | +, - | seštevanje, odštevanje |
3. | *, / | množenje, deljenje |
4. | +, -, || | seštevanje, odštevanje, združevanje |
5. | primerjalni operaterji | |
6. | NE | negacija |
8. | ALI | vključitev |
Izjave o nadzoru v PL / SQL
Nadzorne strukture v PL / SQL sestavljajo programske strukture, kot je ponovitev, zaporedje, in izbiro . Oblika izbire preveri stanje, nato pa na podlagi rezultatov true ali false obdela naslednji blok kode po vrstnem redu.
Oblika ponavljanja večkrat zažene blok kode ali stavkov, dokler pogoj ni veljaven. Na koncu oblika zaporedja obdeluje stavke enega za drugim v vrstnem redu, v katerem so.
Izjava o stanju v PL SQL
V scenarijih odločanja se uporabljajo izjave o pogojih, kot so IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF in CASE.
# 1) ČE-TADA: To je ena od osnovnih oblik izjav IF. Vsebuje blok kode s ključnimi besedami ENDIF in THEN. Če je rezultat pogoja resničen, se naslednji blok kode izvede drugače, ne.
Struktura IF-THEN:
IF condition THEN Block of code END IF;
V eni vrstici, kot je ta, lahko obdržimo tudi kratek blok IF –THEN.
IF big > small THEN temp: = big; END IF;
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
# 2) ČE TAKO-VSE: To je naslednja oblika stavka IF, ki ima ključno besedo ELSE in naslednji blok kode. Ta blok stavkov ELSE ni obvezen in se izvede, če je pogoj FALSE.
Struktura IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
# 3) IF-THEN-ELSIF: Ta pogojni stavek daje možnost izbire med možnostmi. ELSE ... ELSE blok kode lahko po želji pride po stavku IF-THEN. Tako se uporablja pri obravnavanju več medsebojno izključujočih se odločitev.
Blok kode IF-THEN ne sme imeti nobenega ali več elementov ELSIF pod pogojem, da se pojavijo pred stavkom ELSE. Ko v enem bloku ELSIF naletimo na resnično stanje, bodo drugi ELSE ali ELSIF prezrti.
Struktura 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;
Izvajanje kode z 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; /
Rezultat zgornje kode je:
# 4) IZJAVA PRIMERA: Ta pogojni stavek bo med možnostmi izbral en blok kode. Tako kot stavki IF tudi CASE ne uporablja logičnega vnosa, temveč izraz, ki pomaga izbrati eno od možnosti.
Zadnja izbira stavka CASE je privzeta. IZJAVA O ZADEVI je učinkovitejša in manj obsežna v primerjavi z izjavami IF.
Struktura IZJAVE PRIMERA:
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;
Izvajanje kode z IZJAVO PRIMERA:
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; /
Rezultat zgornje kode je:
# 5) IZKAZANI PRIMER: Ta pogojni stavek nima nobenega izbirnika in blok kode WHEN daje samo logične rezultate in ne vrednosti drugih podatkovnih vrst.
Struktura ISKANE ZADEVE:
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;
Izvajanje kode z IZKAZOM ISKANI PRIMER:
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; /
Rezultat zgornje kode mora biti:
# 6) GNEZDENI, ČE TAKO-VSE: Ta pogojni stavek daje določbo o uporabi ELSE IF ali bloka IF znotraj drugega IF ali ELSE IF.
Struktura 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;
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
Ponavljajoča izjava v PL SQL
Med izvajanjem logike v PL / SQL bomo morda morali večkrat večkrat obdelati blok kode. To dosežemo s pomočjo stavkov LOOP. To so tri vrste, FOR-LOOP, WHILE-LOOP in LOOP.
# 1) PL SQL LOOPS
LOOP ima osnovno strukturo, kot je prikazano spodaj:
LOOP Block of code END LOOP;
Po vsaki ponovitvi programski tok kaže nazaj na vrh zanke, dokler ni izpolnjen določen pogoj. V primeru, da želimo zaradi situacije priti iz zanke, lahko v tem primeru uporabimo stavek EXIT.
# 2) PL SQL, medtem ko zanko
Ta zanka bo večkrat zagnala blok kode, dokler pogoj ne bo veljaven. Na začetku vsake ponovitve se preveri stanje zanke. Če je zadovoljen, se blok kode izvede.
Če je pogoj ničen ali ni izpolnjen, se zanki izognemo in izvedemo naslednji blok kode.
Struktura WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
# 3) PL SQL ZA ZANIKO
Ta vrsta zanke omogoča izvedbo bloka kode določeno število krat. Začetni korak se izvede enkrat. To se uporablja predvsem za inicializacijo in deklariranje spremenljivk zanke. Nato se preverijo mejne vrednosti (začetni in končni obseg). Če je pogoj izpolnjen, se bo izvršil blok kode znotraj LOOP. V nasprotnem primeru se programski tok premakne na naslednji blok kode po zanki.
Po eni ponovitvi se števec zank poveča ali zmanjša za eno. Celoten postopek se nadaljuje, dokler ni izpolnjen pogoj zanke. Ko pogoj postane FALSE, se zanka konča.
V PL / SQL lahko začetni in končni obseg zanke spremenite med izvajanjem. Števec zanke mora biti celo število, število itd. (Ki se lahko številčno poveča ali zmanjša). Začetna vrednost spremenljivke števca je lahko poljubno število.
Struktura FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Izvajanje kode 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; /
Rezultat zgornje kode mora biti:
# 4) NESTED LOOP
Ta vrsta stavka omogoča eno zanko nad drugo. Zunanja in notranja struktura zanke sta lahko enake ali različne vrste. Po vsakem prehodu morata obe zanki uspešno teči.
Struktura ugnezdene zanke:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
Oznake zanke v PL / SQL
V PL / SQL imamo določeno označevanje zank, ki povečuje berljivost in pomen kode. Oznako predstavljajo dvojni kotni oklepaji ( << in >> ) in so omenjeni na vrhu stavka LOOP. Nalepko lahko postavite tudi na koncu LOOP-a.
Oznako lahko opišemo tudi za stavke EXIT, ko izstopimo iz zanke.
Struktura OZNAK:
<> LOOP Block of Code END LOOP;
Izvajanje kode z 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; /
Izjave o nadzoru zaporedja
Stavek nadzora se uporablja za spreminjanje poteka izvajanja programa.
# 1) IZHOD
Stavek EXIT izrecno prekine zanko. Ko v zanki najdemo EXIT, se zanka prekine in tok programa se premakne na naslednji blok kode. V pogojih, ko uporabljamo ugnezdene zanke, bo stavek EXIT najprej zaključil notranjo zanko in nato izvede blok kode, ki se prikaže takoj za njim.
Izvajanje kode z 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; /
Rezultat zgornje kode mora biti:
# 2) NADALJUJ
Ta nadzorni stavek omogoča, da se zanka prikaže in se premakne na naslednjo ponovitev.
Izvajanje kode z NADALJUJ:
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; /
Rezultat zgornje kode mora biti:
# 3) GOTO
Stavek GOTO brezpogojno premakne kontrolnik v edinstveni označeni blok kode. Uporaba stavkov GOTO ni dobra programska tehnika, ker zmanjšuje berljivost in sledljivost kode.
Struktura GOTO:
GOTO 60; .. .. <> Block of code 1;
Izvajanje kodiranja z izjavo GOTO:
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;
Rezultat zgornje kode mora biti:
Pogosto zastavljena vprašanja
V # 1) Kakšen je nadzorni stavek v PL / SQL?
Odgovor: Kontrolni stavki v PL / SQL so treh vrst - stavčni stavki, zaporedni stavki in kontrolni stavki. Izjava zanke je sestavljena iz WHILE LOOP, FOR LOOP in basic LOOP.
Q # 2) Kako preverite enakost v PL / SQL?
Odgovor: V PL / SQL imamo operator enakosti, ki preverja enakost.
Na primer
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
V # 3) Kako ustavite neskončno zanko v PL / SQL?
Odgovor: Neskončno zanko v PL / SQL lahko ustavimo s pomočjo stavkov EXIT. Izjave EXIT moramo hraniti znotraj zanke in ne zunaj zanke.
V # 4) Kakšen je namen pogojne strukture nadzora v PL / SQL?
Odgovor: Pogojna nadzorna struktura daje možnost nadzora pretoka programa glede na nekatera merila. Tako se koda v programu ne izvaja zaporedno. Blok kode se izvede na podlagi pogoja.
V # 5) Katerih je 6 relacijskih operaterjev?
Odgovor: Relacijski operaterji PL / SQL so =,,! =, ==.
V # 6) Katere so različne vrste operaterjev?
Odgovor: Spodaj so navedene različne vrste operaterjev v PL / SQL:
- Bitni operaterji
- Operatorji dodelitve
- Aritmetični operaterji
- Relacijski operaterji
- Logični operaterji
Zaključek
V tej vadnici smo zajeli velik del PL / SQL, ki obravnava teme, kot so večkratni operaterji, in njihov pomen s primeri kode.
Prav tako smo podrobno raziskali nadzorne izjave PL SQL. Kontrolni stavki so sestavljeni iz programskih struktur, kot so iteracija, stanje in zaporedje.
V naslednji vadnici bomo razpravljali o postopkih, funkcijah, kazalcih in številnih drugih tem PL PL PL.
Priporočeno branje
- PL SQL Vadnica za začetnike s primeri | Kaj je PL / SQL
- Python operaterji
- Pogojne izjave Unixa: če je to še drugače, in relacijski operaterji
- Izjave o nadzoru Pythona (Python Continue, Break and Pass)
- Vadnica o pogojnih izjavah C #
- Nadzor virov ali nadzor različic v DevOps (Video vadnica, 2. del - blok 2)
- Zanke v C #: Nadzorne izjave in različne zanke s primeri
- Tortoise SVN Vadnica: Revizije v odlagališču kod