pl sql operators control statements tutorial
Naučte se o různých operátorech a řídicích příkazech PL SQL, jako je if-then-else, pro smyčku, smyčku atd., S příklady ukázkových kódů:
V Příkazy PL / SQL návod na Série PL / SQL , na příkladech programování jsme se dozvěděli o příkazech PL SQL INSERT, UPDATE, DELETE a SELECT.
V tomto článku probereme různé operátory, které PL / SQL podporuje, jako relační, logické, aritmetické a srovnávací operátory. Rovněž prozkoumáme kontrolní příkazy, které se značně používají v PL / SQL.
Podmínky PL / SQL a iterační struktury byly podrobně vysvětleny na příkladech zde v tomto výukovém programu.
css3 rozhovor otázky a odpovědi pdf
Co se naučíte:
Operátory PL SQL
Operátor PL SQL nasměruje kompilátor na provádění aritmetických a logických operací pomocí symbolu.
Ve výchozím nastavení má PL / SQL následující typy operátorů:
- Aritmetický
- Srovnání
- Logický
- Tětiva
- Relační
# 1) Aritmetické operátory
Symbol | Popis | |
---|---|---|
7 | A | spojení |
+ | Provede přidání dvou operandů. | |
* | Provede násobení dvou operandů. | |
/ | Provede rozdělení na dva operandy. | |
- | Provede odečtení dvou operandů. | |
** | Provede exponenciální operaci. |
Implementace kódu pomocí aritmetických operátorů:
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; /
Výstup z výše uvedeného kódu by měl být:
# 2) Relační operátoři
Tito operátoři provádějí porovnání a návratové hodnoty v booleovském jazyce.
Sériové číslo | Symbol | Popis |
---|---|---|
1 | > | Ověřuje, zda je hodnota levého operandu větší než pravá. |
dva | < | Ověřuje, zda je hodnota pravého operandu větší než levá. |
3 | > = | Ověřuje, zda je hodnota levého operandu větší než rovná pravému. |
4 | <= | Ověřuje, zda je hodnota pravého operandu větší než rovná levé. |
5 | = | Ověřuje, zda jsou dva operandy stejné. |
6 | ! =, ~ =, | Ověřuje, zda dva operandy nejsou stejné. |
Implementace kódu s relačními operátory:
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; /
Výstup z výše uvedeného kódu by měl být:
# 3) Porovnávací operátoři
Tento operátor dává výstupu buď hodnotu true, false, nebo null na základě výsledku porovnání jednoho příkazu s druhým.
Symbol | Popis |
---|---|
MEZI | Ověřuje, zda hodnota leží v rozsahu. |
V | Ověří, zda se hodnota rovná sadě členů. |
JAKO | Ověřuje, zda je řetězec nebo znak podobný vzoru. |
JE NULL | Ověřuje, zda se operand rovná hodnotě Null. |
Implementace kódu s operátorem porovnání:
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; /
Výstup z výše uvedeného kódu by měl být:
# 4) Logičtí operátoři
PL / SQL podporuje více než jeden logický operátor. Působí na operandy, které mají booleovskou povahu a přinášejí také booleovské výsledky.
Sériové číslo | Symbol | Popis |
---|---|---|
1 | NE | Známý jako logický NOT. Pokud je výsledek pravdivý, NEPROVÁDÍ, že je nepravdivý. |
dva | A | Známý jako logický AND. Pokud jsou všechny operandy pravdivé, je výsledek pravdivý. |
3 | NEBO | Známý jako logický OR. Pokud je někdo z operandů pravdivý, je výsledek pravdivý. |
Implementace kódu pomocí logických operátorů:
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; /
Výstup z výše uvedeného kódu by měl být:
Přednost operátora
Priorita operátorů PL SQL je nastavena tak, aby definovala, jak má být provedena operace zahrnující jeden nebo více operátorů nebo více než jeden operand. Operátory s vyšší prioritou se počítají první než ostatní, zatímco s operátory se stejnou prioritou se manipuluje v žádné konkrétní sekvenci.
V následující tabulce jsou uvedeny operátory od nejvyšší po nejnižší.
Sériové číslo | Symbol | Popis |
---|---|---|
1 | ** | exponenciální operace |
dva | +, - | sčítání, odčítání |
3 | *, / | násobení, dělení |
4 | +, -, || | sčítání, odčítání, zřetězení |
5 | operátory porovnání | |
6 | NE | negace |
8 | NEBO | zařazení |
Řídicí příkazy v PL / SQL
Řídicí struktury v PL / SQL se skládají z programových struktur, jako je iterace, sekvence, a výběr . Forma výběru ověří podmínku a poté na základě výsledků true nebo false zpracuje další blok kódu v pořadí.
Forma iterace spouští blok kódu nebo příkazů opakovaně, dokud není podmínka platná. Nakonec forma sekvence zpracovává příkazy jeden po druhém v pořadí, v jakém jsou přítomny.
Prohlášení o stavu v PL SQL
V rozhodovacích scénářích se používají příkazy podmínky jako IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF a CASE.
# 1) POKUD POTOM: Toto je jedna ze základních forem IF prohlášení. Obsahuje blok kódu s klíčovými slovy ENDIF a POTOM. Pokud je výsledek podmínky pravdivý, provede se další blok kódu, jinak ne.
Struktura IF-THEN:
IF condition THEN Block of code END IF;
Můžeme také ponechat krátký IF –POTOM blok na jednom takovém řádku.
IF big > small THEN temp: = big; END IF;
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
# 2) IF-THEN-ELSE: Toto je další forma příkazu IF, která má klíčové slovo ELSE, pak další blok kódu. Tento blok příkazů ELSE je volitelný a provede se, když je podmínka FALSE.
Struktura IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
# 3) IF-THEN-ELSIF: Toto podmíněné prohlášení dává možnost výběru mezi alternativami. JINÉ… JINÝ blok kódu může volitelně následovat po příkazu IF-THEN. Používá se tedy při řešení několika vzájemně se vylučujících možností.
Blok kódu IF-THEN může mít žádný nebo více ELSIF za předpokladu, že se objeví před příkazem ELSE. Jakmile narazíme na skutečnou podmínku v jednom bloku ELSIF, ostatní ELSE nebo ELSIF budou ignorovány.
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;
Implementace kódu pomocí 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; /
Výstupem výše uvedeného kódu je:
# 4) PROHLÁŠENÍ O PŘÍPADECH: Toto podmíněné prohlášení vybere z možností jeden blok kódu. Stejně jako příkazy IF ale CASE nepoužívá booleovský vstup, ale výraz, který pomáhá vybrat jednu z možností.
Poslední volba příkazu CASE je výchozí. PROHLÁŠENÍ O PŘÍPADECH je ve srovnání s příkazy IF efektivnější a méně zdlouhavé.
Struktura PROHLÁŠENÍ O PŘÍPADECH:
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;
Implementace kódu s 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; /
Výstupem výše uvedeného kódu je:
# 5) Prohlášení VYHLEDÁVANÉHO PŘÍPADU: Toto podmíněné prohlášení neobsahuje žádný selektor a WHEN blok kódu poskytuje pouze booleovské výsledky, nikoli žádnou hodnotu jiných datových typů.
Struktura výpisu VYHLEDÁVANÝCH PŘÍPADŮ:
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;
Implementace kódu s prohlášením SEARCHED CASE:
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; /
Výstup z výše uvedeného kódu by měl být:
# 6) VLOŽENO, POKUD POTOM JINÉ: Toto podmíněné prohlášení poskytuje ustanovení o použití ELSE IF nebo IF bloku v jiném IF nebo 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;
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
Iterativní prohlášení v PL SQL
Při implementaci logiky v PL / SQL můžeme vyžadovat opakované zpracování bloku kódu několikrát. Toho je dosaženo pomocí příkazů LOOP. Jsou to tři typy, FOR-LOOP, WHILE-LOOP a LOOP.
# 1) PL SQL LOOPS
Smyčka má základní strukturu, jak je uvedeno níže:
LOOP Block of code END LOOP;
Po každé iteraci tok programu směřuje zpět do horní části smyčky, dokud není splněna určitá podmínka. V případě, že chceme vyjít ze smyčky kvůli situaci, v takovém případě lze použít příkaz EXIT.
# 2) PL SQL PŘI SLOŽCE
Tato smyčka spustí blok kódu několikrát, dokud není podmínka platná. Na začátku každé iterace se zkontroluje stav smyčky. Pokud je splněn, blok kódu se provede.
Pokud je podmínka null nebo není splněna, smyčce se vyhneme a provede se další blok kódu.
Struktura WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
# 3) PL SQL PRO smyčku
Tento typ smyčky umožňuje provedení bloku kódu na určitý počet opakování. Počáteční krok se provede jednou. To se primárně používá pro inicializaci a deklaraci proměnných smyčky. Poté se zkontrolují hraniční hodnoty (počáteční a koncový rozsah). Pokud je podmínka splněna, blok kódu uvnitř smyčky bude spuštěn. Pokud ne, tok programu se po smyčce přesune na následující blok kódu.
Po jedné iteraci se čítač smyčky zvyšuje nebo snižuje o jednu. Celý proces pokračuje, dokud není splněna podmínka smyčky. Jakmile se podmínka stane FALSE, smyčka končí.
V PL / SQL lze počáteční a koncový rozsah smyčky změnit za běhu. Počítadlo smyčky by mělo být celé číslo, číslo atd. (Které lze numericky zvýšit nebo snížit). Počáteční hodnotou proměnné čítače může být jakékoli číslo.
Struktura FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Implementace kódu 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; /
Výstup z výše uvedeného kódu by měl být:
# 4) NESTED LOOP
Tento typ příkazu umožňuje jednu smyčku přes druhou. Struktura vnější a vnitřní smyčky může být stejného nebo různých typů. Po každém průchodu musí obě smyčky úspěšně fungovat.
Struktura vnořené smyčky:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
Smyčkové štítky v PL / SQL
V PL / SQL máme ustanovení o označování smyček, což zvyšuje čitelnost a význam kódu. Štítek je reprezentován dvojitými úhelníky ( << a >> ) a jsou uvedeny v horní části příkazu LOOP. Štítek lze umístit také na konec smyčky.
Štítek lze také popsat pro příkazy EXIT při výstupu ze smyčky.
Struktura štítků:
<> LOOP Block of Code END LOOP;
Implementace kódu pomocí 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; /
Prohlášení o řízení sekvence
Řídicí příkaz se používá k úpravě průběhu provádění programu.
# 1) KONEC
Příkaz EXIT explicitně přeruší smyčku. Když je ve smyčce nalezen EXIT, smyčka se přeruší a tok programu se přesune na další blok kódu. V podmínkách, kde používáme vnořené smyčky, příkaz EXIT nejprve ukončí vnitřní smyčku a poté provede blok kódu, který se objeví bezprostředně za ní.
Implementace kódu pomocí 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; /
Výstup z výše uvedeného kódu by měl být:
# 2) POKRAČOVAT
Tento ovládací příkaz umožňuje smyčce vyjít a přesunout se na další iteraci.
Implementace kódu s POKRAČOVAT:
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; /
Výstup z výše uvedeného kódu by měl být:
# 3) GOTO
Příkaz GOTO bezpodmínečně přesune ovládací prvek do jedinečného označeného bloku kódu. Používat příkazy GOTO není dobrá programovací technika, protože snižuje čitelnost a sledovatelnost kódu.
Struktura GOTO:
GOTO 60; .. .. <> Block of code 1;
Implementace kódování pomocí příkazu 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;
Výstup z výše uvedeného kódu by měl být:
Často kladené otázky
Otázka č. 1) Co je kontrolní příkaz v PL / SQL?
Odpovědět: Řídicí příkazy v PL / SQL jsou tři typy - smyčkové příkazy, sekvenční příkazy a řídicí příkazy. Příkaz smyčky se skládá z WHILE LOOP, FOR LOOP a basic LOOP.
Otázka č. 2) Jak zkontrolujete rovnost v PL / SQL?
Odpovědět: V PL / SQL máme operátor rovnosti, který kontroluje rovnost.
Například,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
Otázka č. 3) Jak zastavíte nekonečnou smyčku v PL / SQL?
Odpovědět: Můžeme zastavit nekonečnou smyčku v PL / SQL pomocí příkazů EXIT. Musíme zachovat příkazy EXIT ve smyčce a ne mimo smyčku.
Otázka č. 4) Jaký je účel struktury podmíněného řízení v PL / SQL?
Odpovědět: Struktura podmíněného řízení poskytuje možnost řídit tok programu v závislosti na některých kritériích. Kód v programu tedy nefunguje v pořadí. Blok kódu se provede na základě podmínky.
Otázka č. 5) Co je 6 relačních operátorů?
Odpovědět: Relační operátory PL / SQL jsou =,,! =, ==.
Otázka č. 6) Jaké jsou různé typy operátorů?
Odpověď: Níže jsou uvedeny různé typy operátorů v PL / SQL:
- Bitové operátory
- Operátoři přiřazení
- Aritmetické operátory
- Relační operátoři
- Logičtí operátoři
Závěr
V tomto kurzu jsme se zabývali velkou částí PL / SQL a zabývali se tématy, jako jsou více operátorů, a jejich důležitostí s příklady kódu.
Také jsme podrobně prozkoumali řídicí příkazy PL SQL. Řídicí příkazy se skládají ze struktur programu, jako je iterace, podmínka a posloupnost.
V dalším kurzu probereme postupy, funkce, kurzory a mnoho dalších souvisejících témat PL SQL.
Doporučené čtení
- Výukový program PL SQL pro začátečníky s příklady | Co je to PL / SQL
- Operátoři Pythonu
- Podmíněné příkazy Unixu: Pokud jsou to ostatní a relační operátoři
- Kontrolní příkazy Pythonu (Python Continue, Break and Pass)
- Výukový program o podmíněných příkazech C #
- Ovládání zdroje nebo řízení verzí v DevOps (výuková video, část 2 - blok 2)
- Smyčky v C #: Kontrolní příkazy a různé smyčky s příklady
- Výukový program pro želvy SVN: Revize v úložišti kódů