pl sql operators control statements tutorial
Saznajte o različitim PL SQL operatorima i izjavama o kontroli, poput if-then-else, for loop, while loop itd. S primjerima primjera koda:
U PL / SQL naredbe vodič za PL / SQL serija , naučili smo o naredbama PL SQL INSERT, UPDATE, DELETE i SELECT s primjerima programiranja.
U ovom ćemo članku razgovarati o različitim operatorima koje PL / SQL podržava, poput relacijskih, logičkih, aritmetičkih i operatora usporedbe. Također ćemo istražiti kontrolne izjave koje se široko koriste u PL / SQL-u.
PL / SQL stanje i iterativne strukture detaljno su objašnjeni s primjerima ovdje u ovom vodiču.
kako reproducirati flash valovsku datoteku
Što ćete naučiti:
PL SQL operateri
PL SQL operator usmjerava prevoditelj da vrši aritmetičke i logičke operacije uz pomoć simbola.
Prema zadanim postavkama PL / SQL ima sljedeće vrste operatora:
- Aritmetika
- Usporedba
- Logično
- Niz
- Relacijski
# 1) Aritmetički operatori
Simbol | Opis | |
---|---|---|
7 | I | veznik |
+ | Izvodi dodavanje dva operanda. | |
* | Izvodi množenje dva operanda. | |
/ | Izvodi podjelu dva operanda. | |
- | Izvodi oduzimanje dva operanda. | |
** | Izvodi eksponencijalnu operaciju. |
Implementacija koda s aritmetičkim operatorima:
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; /
Izlaz gornjeg koda trebao bi biti:
# 2) Relacijski operateri
Ovi operateri izvode vrijednosti usporedbe i vraćanja u logičkoj vrijednosti.
Serijski broj. | Simbol | Opis |
---|---|---|
1 | > | Provjerava je li vrijednost lijevog operanda veća od desne. |
dva | < | Provjerava je li vrijednost desnog operanda veća od lijeve. |
3 | > = | Provjerava je li vrijednost lijevog operanda veća od jednake desnom. |
4 | <= | Provjerava je li vrijednost desnog operanda veća od lijeve. |
5 | = | Provjerava jesu li dva operanda jednaka. |
6 | ! =, ~ =, | Provjerava jesu li dva operanda jednaka. |
Implementacija koda s relacijskim operatorima:
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; /
Izlaz gornjeg koda trebao bi biti:
# 3) Operatori usporedbe
Ovaj operator daje izlaz kao istinitu, lažnu ili nultu vrijednost na temelju rezultata usporedbe jedne izjave s drugom.
Simbol | Opis |
---|---|
IZMEĐU | Provjerava nalazi li se vrijednost u rasponu. |
U | Provjerava je li vrijednost jednaka skupu članova. |
KAO | Provjerava jesu li niz ili znak slični uzorku. |
JE NIŠTA | Provjerava je li operand jednak vrijednosti Null. |
Implementacija koda s operatorom usporedbe:
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; /
Izlaz gornjeg koda trebao bi biti:
# 4) Logički operatori
PL / SQL podržava više od jednog logičkog operatora. Oni djeluju na operande koji su booleovske prirode i također daju logičke rezultate.
Serijski broj. | Simbol | Opis |
---|---|---|
1 | NE | Poznat kao logičan NE. Ako je rezultat istinit, onda ga NE čini lažnim. |
dva | I | Poznat kao logičan I. Ako su svi operandi istiniti, rezultat je istinit. |
3 | ILI | Poznat kao logičan ILI. Ako je itko od operanda istinit, rezultat je istina. |
Implementacija koda s logičkim operatorima:
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; /
Izlaz gornjeg koda trebao bi biti:
Prednost operatora
Prednost PL SQL operatora postavljena je da definira kako će se izvršiti operacija koja uključuje jedan ili više operatora ili više od jednog operanda. Operatori s većim prioritetom izračunavaju se prvi od ostalih dok se operatorima s istim prioritetom manipulira u određenom slijedu.
U donjoj tablici navedeni su operateri od visokog do malog prioriteta.
Serijski broj. | Simbol | Opis |
---|---|---|
1 | ** | eksponencijalni rad |
dva | +, - | zbrajanje, oduzimanje |
3 | *, / | množenje, dijeljenje |
4 | +, -, || | zbrajanje, oduzimanje, spajanje |
5 | operateri usporedbe | |
6 | NE | negacija |
8 | ILI | uključenje, Ubrajanje |
Izjave o kontroli u PL / SQL-u
Kontrolne strukture u PL / SQL-u sastoje se od programskih struktura poput ponavljanje, slijed, i izbor . Oblik odabira provjerava stanje, a zatim na temelju rezultata true ili false obrađuje sljedeći blok koda redom.
Oblik iteracije ponavlja blok koda ili iskaza više puta dok uvjet ne bude valjan. Konačno, oblik niza obrađuje iskaze jedan po jedan onim redoslijedom kojim su prisutni.
Izjava o stanju u PL SQL-u
U scenarijima donošenja odluka koriste se izjave o stanju poput IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF i CASE.
# 1) AKO-ONDA: Ovo je jedan od osnovnih oblika IF izjava. Sadrži blok koda s ključnim riječima ENDIF i THEN. Ako je rezultat uvjeta istinit, sljedeći blok koda izvršava se inače, ne.
Struktura IF-THEN:
IF condition THEN Block of code END IF;
Također možemo zadržati kratki blok IF –THEN na jednom retku poput ovog.
IF big > small THEN temp: = big; END IF;
Implementacija koda s 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; /
Izlaz gornjeg koda trebao bi biti:
# 2) AKO-ONDA-OSTALO: Ovo je sljedeći oblik izjave IF koji ima ključnu riječ ELSE, a zatim sljedeći blok koda. Ovaj blok ELSE izraza nije obavezan i izvršava se kada je uvjet FALSE.
Struktura IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Implementacija koda s 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; /
Izlaz gornjeg koda trebao bi biti:
# 3) AKO-ONDA-ELSIF: Ova uvjetna izjava daje mogućnost odabira među alternativama. ELSE ... ELSE blok koda može opcionalno doći nakon izjave IF-THEN. Stoga se koristi za rješavanje više međusobno isključivih izbora.
Blok koda IF-THEN ne može imati niti jedan ili više ELSIF-ova pod uvjetom da se pojave prije ELSE izraza. Jednom kada u jednom bloku ELSIF-a naiđemo na pravo stanje, ostali ELSE ili ELSIF-ovi će se zanemariti.
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;
Implementacija koda s 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 gornjeg koda je:
# 4) IZJAVA O SLUČAJU: Ova uvjetna izjava odabrat će jedan blok koda iz izbora. Međutim, poput IF izjava, CASE ne koristi logički unos, već izraz koji pomaže u odabiru jedne od opcija.
Posljednji izbor CASE izraza je zadani. IZJAVA O SLUČAJU učinkovitija je i manje dugačka u usporedbi s IF izjavama.
STRUKTURA PREDMETA:
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;
Implementacija koda s IZJAVOM SLUČAJA:
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 gornjeg koda je:
# 5) PRETRAŽENI PREDMET: Ova uvjetna izjava nema nijednog selektora, a blok WHEN koda daje samo logičke rezultate, a ne i vrijednost drugih vrsta podataka.
Struktura PRETRAŽENOG PREDMETA:
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;
Implementacija koda s IZJAVOM O PRETRAŽENOM SLUČAJU:
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; /
Izlaz gornjeg koda trebao bi biti:
# 6) GNJESTO AKO ONDA I OSTALO: Ova uvjetna izjava daje odredbu o korištenju ELSE IF ili IF bloka unutar drugog IF ili 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;
Implementacija koda s 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; /
Izlaz gornjeg koda trebao bi biti:
Iterativna izjava u PL SQL-u
Dok implementiramo logiku u PL / SQL, možda ćemo trebati nekoliko puta obraditi blok koda. To se postiže uz pomoć LOOP izjava. To su tri vrste, FOR-LOOP, WHILE-LOOP i LOOP.
# 1) PL SQL LOOPS
LOOP ima osnovnu strukturu kao što je prikazano u nastavku:
LOOP Block of code END LOOP;
Nakon svake iteracije, tok programa pokazuje natrag na vrh petlje dok se ne zadovolji određeni uvjet. U slučaju da želimo izaći iz petlje zbog neke situacije, u tom se slučaju može koristiti izraz EXIT.
# 2) PL SQL DOK ZANIMA
Ova će petlja izvoditi blok koda više puta dok uvjet ne postane valjan. Na početku svake iteracije provjerava se stanje petlje. Ako je zadovoljen, izvršava se blok koda.
Ako je uvjet null ili nije zadovoljen, petlja se izbjegava i izvršava se sljedeći blok koda.
Struktura WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Implementacija koda s 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; /
Izlaz gornjeg koda trebao bi biti:
# 3) PL SQL ZA LOOP
Ova vrsta petlje omogućuje izvršavanje bloka koda određeni broj puta. Početni korak izvršava se jednom. Ovo se prvenstveno koristi za inicijalizaciju i deklaraciju varijabli petlje. Tada se provjeravaju granične vrijednosti (početni i završni raspon). Ako je uvjet zadovoljen, izvršit će se blok koda unutar LOOP-a. Ako nije, tijek programa prelazi na sljedeći blok koda nakon petlje.
Nakon jedne iteracije brojač petlje se povećava ili smanjuje za jedan. Cijeli se postupak nastavlja dok se ne zadovolji uvjet petlje. Kako uvjet postaje FALSE, petlja se završava.
U PL / SQL, početno i završno područje petlje može se mijenjati u vrijeme izvođenja. Brojač petlje trebao bi biti cijeli broj, broj itd. (Koji se može numerički povećati ili smanjiti). Početna vrijednost varijable brojača može biti bilo koji broj.
Struktura FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Implementacija koda 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; /
Izlaz gornjeg koda trebao bi biti:
# 4) GNJEDENA petlja
Ova vrsta izraza dopušta jednu petlju preko druge. Struktura vanjske i unutarnje petlje mogu biti iste ili različite vrste. Nakon svakog prelaska, obje petlje moraju se uspješno pokrenuti.
Struktura ugniježđene petlje:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Implementacija koda s 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; /
Izlaz gornjeg koda trebao bi biti:
Oznake petlje u PL / SQL-u
U PL / SQL-u imamo odredbu označavanja petlji koja povećava čitljivost i značenje koda. Oznaka je predstavljena dvokutnim zagradama ( << i >> ) i spominju se na vrhu izjave LOOP. Oznaka se može staviti i na kraj LOOP-a.
Oznaka se također može opisati za EXIT izjave dok izlazi iz petlje.
Struktura OZNAKA:
<> LOOP Block of Code END LOOP;
Implementacija koda s 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 kontroli sekvence
Izjava o kontroli koristi se za modificiranje tijeka izvršavanja programa.
# 1) IZLAZ
Izraz EXIT eksplicitno prekida petlju. Kada se EXIT pronađe u petlji, petlja se prekida i tijek programa prelazi na sljedeći blok koda. U uvjetima kada koristimo ugniježđene petlje, naredba EXIT prvo će završiti unutarnju petlju, a zatim izvršiti blok koda koji se pojavljuje odmah nakon nje.
Implementacija koda s EXIT-om:
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; /
Izlaz gornjeg koda trebao bi biti:
# 2) NASTAVAK
Ova kontrolna izjava omogućuje petlji da izađe i pređe na sljedeću iteraciju koja će se održati.
Implementacija koda s NASTAVAK:
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; /
Izlaz gornjeg koda trebao bi biti:
# 3) GOTO
Izjava GOTO bezuvjetno premješta kontrolu u jedinstveni označeni blok koda. Nije dobra programska tehnika koristiti GOTO izjave jer smanjuje čitljivost i sljedivost koda.
Struktura GOTO-a:
GOTO 60; .. .. <> Block of code 1;
Implementacija kodiranja s GOTO izjavom:
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;
Izlaz gornjeg koda trebao bi biti:
Često postavljana pitanja
P # 1) Što je kontrolna izjava u PL / SQL-u?
Odgovor: Kontrolni izrazi u PL / SQL-u imaju tri vrste - naredbe petlje, sekvencijalni izrazi i kontrolni izrazi. Izjava petlje sastoji se od WHILE LOOP, FOR LOOP i basic LOOP.
P # 2) Kako provjeriti jednakost u PL / SQL-u?
Odgovor: U PL / SQL imamo operator jednakosti koji provjerava jednakost.
Na primjer,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
P # 3) Kako zaustaviti beskonačnu petlju u PL / SQL-u?
Odgovor: Beskonačnu petlju u PL / SQL-u možemo zaustaviti uz pomoć EXIT izraza. Izjave EXIT moramo zadržati unutar petlje, a ne izvan petlje.
P # 4) Koja je svrha uvjetne upravljačke strukture u PL / SQL-u?
Odgovor: Uvjetna upravljačka struktura daje mogućnost upravljanja protokom programa ovisno o nekim kriterijima. Stoga se kod u programu ne izvodi u slijedu. Blok koda izvršava se na temelju uvjeta.
P # 5) Koji su 6 relacijskih operatora?
Odgovor: Relacijski operatori PL / SQL su =,,! =, ==.
P # 6) Koje su različite vrste operatora?
Odgovor: U nastavku su navedene različite vrste operatora u PL / SQL:
- Bitovni operateri
- Operatori dodjele
- Aritmetički operatori
- Relacijski operateri
- Logički operatori
Zaključak
U ovom smo priručniku pokrili velik dio PL / SQL-a koji se bavi primjerima višestrukih operatora i njihovom važnošću.
Također, detaljno smo istražili PL SQL izjave o kontroli. Izjave o kontroli sastoje se od programskih struktura poput iteracije, stanja i slijeda.
U sljedećem uputstvu razgovarat ćemo o PL SQL procedurama, funkcijama, kursorima i mnogim drugim srodnim temama.
Preporučena literatura
- PL SQL Vodič za početnike s primjerima | Što je PL / SQL
- Python operateri
- Uvjetne izjave Unixa: ako je to slučaj drugo i relacijski operateri
- Izjave o kontroli Pythona (Python Continue, Break and Pass)
- Vodič o uvjetnim izjavama za C #
- Kontrola izvora ili kontrola verzija u DevOps-u (Video tutorial 2. dio - blok 2)
- Petlje u C #: Kontrolne izjave i razne petlje s primjerima
- Vodič za kornjače SVN: Revizije u spremištu koda