pl sql operators control statements tutorial
Dozviete sa tu o rôznych operátoroch a riadiacich príkazoch PL SQL, ako napríklad if-then-else, for loop, while loop, atď., S príkladmi vzorových kódov:
V Príkazy PL / SQL návod na Séria PL / SQL , na príkladoch programovania sme sa dozvedeli o príkazoch PL SQL INSERT, UPDATE, DELETE a SELECT.
V tomto článku si ukážeme rôzne operátory, ktoré PL / SQL podporuje, ako napríklad relačné, logické, aritmetické a porovnávacie operátory. Taktiež preskúmame kontrolné vyhlásenia, ktoré sa rozsiahle používajú v PL / SQL.
Podmienky PL / SQL a iteračné štruktúry boli v tomto výučbe podrobne vysvetlené pomocou príkladov.
sql dotaz otázky a odpovede na otázky pre skúsených pdf
Čo sa dozviete:
Operátory PL SQL
Operátor PL SQL nasmeruje kompilátor na vykonanie aritmetických a logických operácií pomocou symbolu.
Štandardne má PL / SQL nasledujúce typy operátorov:
- Aritmetika
- Porovnanie
- Logické
- String
- Vzťahové
# 1) Aritmetické operátory
Symbol | Popis | |
---|---|---|
7 | A | spojka |
+ | Vykoná pridanie dvoch operandov. | |
* | Vykoná násobenie dvoch operandov. | |
/ | Vykoná rozdelenie na dva operandy. | |
- | Vykoná odčítanie dvoch operandov. | |
** | Vykoná exponenciálnu operáciu. |
Implementácia kódu pomocou aritmetických operátorov:
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 vyššie uvedeného kódu by mal byť:
# 2) Relační operátori
Títo operátori vykonávajú porovnávacie a návratové hodnoty v Booleovskom jazyku.
Sériové číslo. | Symbol | Popis |
---|---|---|
jeden | > | Overuje, či je hodnota ľavého operandu väčšia ako pravá. |
dva | < | Overuje, či je hodnota pravého operandu väčšia ako ľavá. |
3 | > = | Overuje, či je hodnota ľavého operandu väčšia ako rovná pravici. |
4 | <= | Overuje, či je hodnota pravého operandu väčšia ako rovná ľavému. |
5 | = | Overuje, či sú dva operandy rovnaké. |
6 | ! =, ~ =, | Overuje, či dva operandy nie sú rovnaké. |
Implementácia kódu s relačnými operátormi:
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 vyššie uvedeného kódu by mal byť:
# 3) Prevádzkovatelia porovnania
Tento operátor dáva výstup buď na hodnotu true, false alebo null na základe výsledku porovnania jedného výroku s druhým.
Symbol | Popis |
---|---|
MEDZI | Overuje, či sa hodnota nachádza v rozsahu. |
IN | Overuje, či sa hodnota rovná množine členov. |
PÁČI SA MI TO | Overuje, či je reťazec alebo znak podobný vzoru. |
JE NULL | Overuje, či sa operand rovná hodnote Null. |
Implementácia kódu s operátorom porovnania:
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 vyššie uvedeného kódu by mal byť:
# 4) Logickí operátori
PL / SQL podporuje viac ako jeden logický operátor. Pôsobia na operandy, ktoré majú booleovskú povahu a tiež poskytujú booleovské výsledky.
Sériové číslo. | Symbol | Popis |
---|---|---|
jeden | NIE | Známe ako logické NIE. Ak je výsledok pravdivý, NIE JE nepravdivý. |
dva | A | Známe ako logické AND. Ak sú všetky operandy pravdivé, výsledok je pravdivý. |
3 | ALEBO | Známe ako logické ALEBO. Ak je niekto z operandov pravdivý, výsledok je pravdivý. |
Implementácia kódu pomocou logických operátorov:
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 vyššie uvedeného kódu by mal byť:
Prednosť operátora
Prednosť operátora PL SQL je nastavená tak, aby definovala, ako sa má vykonať operácia zahŕňajúca jedného alebo viacerých operátorov alebo viac ako jedného operandu. Operátory s vyššou prednosťou sa počítajú najskôr ako ostatné, zatiaľ čo s operátormi s rovnakou prednosťou sa manipuluje bez konkrétnej postupnosti.
V nasledujúcej tabuľke sú uvedené operátory od najvyššej po najnižšiu.
Sériové číslo. | Symbol | Popis |
---|---|---|
jeden | ** | exponenciálna operácia |
dva | +, - | sčítanie, odčítanie |
3 | *, / | násobenie, delenie |
4 | +, -, || | sčítanie, odčítanie, zreťazenie |
5 | operátory porovnania | |
6 | NIE | negácia |
8 | ALEBO | začlenenie |
Kontrolné príkazy v PL / SQL
Riadiace štruktúry v PL / SQL pozostávajú z programových štruktúr, ako je iterácia, postupnosť, a výber . Forma výberu overí podmienku a potom na základe výsledkov hodnoty true alebo false spracuje nasledujúci blok kódu v poradí.
Forma iterácie spúšťa blok kódu alebo príkazov opakovane, kým nie je platná podmienka. Nakoniec forma postupnosti spracuje výroky jeden po druhom v poradí, v akom sú.
Príkaz stavu v PL SQL
V scenároch rozhodovania sa používajú príkazy podmienky ako IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF a CASE.
# 1) AK POTOM: Toto je jedna zo základných foriem vyhlásení IF. Obsahuje blok kódu s kľúčovými slovami ENDIF a POTOM. Ak je výsledok podmienky pravdivý, vykoná sa nasledujúci blok kódu, inak nie.
Štruktúra IF-POTOM:
IF condition THEN Block of code END IF;
Môžeme tiež ponechať krátky IF –TAK blok na jednom takomto riadku.
IF big > small THEN temp: = big; END IF;
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
# 2) AK-POTOM INAK: Toto je ďalšia forma príkazu IF, ktorá má kľúčové slovo ELSE, potom ďalší blok kódu. Tento blok príkazov ELSE je voliteľný a vykoná sa, keď je podmienka FALSE.
Štruktúra IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
# 3) AK-POTOM ELSIF: Toto podmienené vyhlásenie dáva možnosť výberu z alternatív. ELSE ... ELSE blok kódu môže prípadne prísť po vyhlásení IF-THEN. Používa sa teda pri riešení viacerých vzájomne sa vylučujúcich možností.
Blok kódu IF-THEN môže mať žiadny alebo viac ELSIF za predpokladu, že sa objaví pred príkazom ELSE. Akonáhle narazíme na skutočnú podmienku v jednom bloku ELSIF, ostatné ELSE alebo ELSIF budú ignorované.
Štruktúra 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;
Implementácia kódu pomocou 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ýstup z vyššie uvedeného kódu je:
# 4) VYHLÁSENIE O PRÍPADE: Toto podmienené vyhlásenie vyberie jeden blok kódu z možností. Rovnako ako výroky IF, ale aj CASE nepoužíva logický vstup, ale výraz, ktorý pomáha pri výbere jednej z možností.
Posledná voľba príkazu CASE je predvolená. VYHLÁSENIE PRÍPADU je efektívnejšie a menej zdĺhavé v porovnaní s príkazmi IF.
Štruktúra VÝKAZU PRÍPADOV:
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;
Implementácia kódu pomocou VYHLÁSENIA PRÍPADU:
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ýstup z vyššie uvedeného kódu je:
# 5) Vyhlásenie VYHĽADÁVANÉHO PRÍPADU: Toto podmienené vyhlásenie neobsahuje žiadny selektor a blok KEDY poskytuje iba logické výsledky, a nie inú hodnotu iných dátových typov.
Štruktúra výpisu VYHĽADÁVANÝCH PRÍPADOV:
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;
Implementácia kódu s vyhlásením VYHĽADÁVANÉHO PRÍPADU:
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 vyššie uvedeného kódu by mal byť:
# 6) VKLADANÉ, AK POTOM POTOM: Toto podmienené vyhlásenie poskytuje ustanovenie o použití ELSE IF alebo IF bloku v rámci iného IF alebo ELSE IF.
Štruktúra NESTEDOVANÉHO IF-POTOM INÉHO:
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;
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
Iteratívne vyhlásenie v PL SQL
Pri implementácii logiky v PL / SQL môžeme vyžadovať, aby sme blok kódu spracovávali opakovane niekoľkokrát. Toho sa dosahuje pomocou príkazov LOOP. Sú to tri typy, FOR-LOOP, WHILE-LOOP a LOOP.
# 1) PL SQL SLUČKY
Smyčka má základnú štruktúru uvedenú nižšie:
LOOP Block of code END LOOP;
Po každej iterácii smeruje tok programu späť do hornej časti slučky, kým nie je splnená určitá podmienka. V prípade, že chceme vyjsť zo slučky kvôli situácii, v takom prípade je možné použiť príkaz EXIT.
# 2) PL SQL PRI SLUČKE
Táto slučka spustí blok kódu niekoľkokrát, kým nebude podmienka platná. Na začiatku každej iterácie sa skontroluje stav slučky. Ak je splnená, vykoná sa blok kódu.
Ak je podmienka nulová alebo nie je splnená, slučke sa zabráni a vykoná sa ďalší blok kódu.
Štruktúra WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
# 3) PL SQL PRE SLUČKU
Tento typ slučky umožňuje vykonanie bloku kódu konkrétnym počtom opakovaní. Počiatočný krok sa vykoná raz. Toto sa primárne používa na inicializáciu a deklaráciu premenných slučky. Potom sa skontrolujú hraničné hodnoty (počiatočný a konečný rozsah). Ak je podmienka splnená, vykoná sa blok kódu vo vnútri LOOP. Ak nie, tok programu sa po ukončení slučky presunie do nasledujúceho bloku kódu.
Po jednej iterácii sa počítadlo slučky zvýši alebo zníži o jednu. Celý proces pokračuje, kým nie je splnená podmienka slučky. Keď sa podmienka stane FALSE, slučka sa skončí.
V PL / SQL možno počiatočný a koncový rozsah slučky zmeniť za behu. Počítadlom slučky by malo byť celé číslo, číslo atď. (Ktoré je možné číselne zväčšiť alebo zmenšiť). Počiatočná hodnota premennej počítadla môže byť akékoľvek číslo.
Štruktúra FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Implementácia 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 vyššie uvedeného kódu by mal byť:
# 4) VNÚTORNÁ SLUČKA
Tento typ výpisu umožňuje jednu slučku cez druhú. Štruktúra vonkajšej a vnútornej slučky môže byť rovnakého alebo rôznych typov. Po každom prechode musia obe slučky úspešne bežať.
Štruktúra vnorenej slučky:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
Smyčkové štítky v PL / SQL
V PL / SQL máme ustanovenie o označovaní slučiek, ktoré zvyšuje čitateľnosť a význam kódu. Štítok je reprezentovaný dvojitými uhlovými zátvorkami ( << a >> ) a sú uvedené v hornej časti výkazu LOOP. Štítok je možné umiestniť aj na koniec LOOP.
Štítok možno tiež opísať pre príkazy EXIT, keď vychádzajú zo slučky.
Štruktúra štítkov:
<> LOOP Block of Code END LOOP;
Implementácia kódu pomocou 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; /
Vyhlásenia o riadení postupnosti
Riadiaci príkaz sa používa na úpravu priebehu vykonávania programu.
# 1) VÝSTUP
Príkaz EXIT explicitne preruší slučku. Keď sa v slučke nájde EXIT, slučka sa rozbije a tok programu sa presunie na ďalší blok kódu. V podmienkach, keď používame vnorené slučky, príkaz EXIT najskôr ukončí vnútornú slučku a potom vykoná blok kódu, ktorý sa objaví bezprostredne po nej.
Implementácia kódu pomocou 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 vyššie uvedeného kódu by mal byť:
# 2) POKRAČOVAŤ
Tento riadiaci príkaz umožňuje, aby slučka vyšla a presunula sa na nasledujúcu iteráciu.
Implementácia kódu s POKRAČOVAŤ:
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 vyššie uvedeného kódu by mal byť:
# 3) GOTO
Príkaz GOTO bezpodmienečne presunie ovládací prvok na jedinečný označený blok kódu. Nie je dobrou technikou programovania používať príkazy GOTO, pretože to znižuje čitateľnosť a vysledovateľnosť kódu.
Štruktúra GOTO:
GOTO 60; .. .. <> Block of code 1;
Implementácia kódovania pomocou prí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 vyššie uvedeného kódu by mal byť:
často kladené otázky
Otázka č. 1) Čo je riadiaci príkaz v PL / SQL?
Odpoveď: Riadiace príkazy v PL / SQL sú troch typov - príkazové slučky, sekvenčné príkazy a riadiace príkazy. Príkaz loop pozostáva z WHILE LOOP, FOR LOOP a basic LOOP.
Otázka č. 2) Ako skontrolujete rovnosť v PL / SQL?
Odpoveď: V PL / SQL máme operátor rovnosti, ktorý kontroluje rovnosť.
Napríklad,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
Otázka č. 3) Ako zastavíte nekonečnú slučku v PL / SQL?
Odpoveď: Môžeme zastaviť nekonečnú slučku v PL / SQL pomocou príkazov EXIT. Musíme zachovať príkazy EXIT v rámci cyklu a nie mimo cyklu.
Otázka č. 4) Aký je účel štruktúry podmieneného riadenia v PL / SQL?
Odpoveď: Štruktúra podmieneného riadenia dáva možnosť riadiť priebeh programu v závislosti od niektorých kritérií. Kód v programe teda nebeží za sebou. Blok kódu sa vykoná na základe podmienky.
Otázka č. 5) Čo je 6 relačných operátorov?
Odpoveď: Relačné operátory PL / SQL sú =,,! =, ==.
Otázka č. 6) Aké sú rôzne typy operátorov?
Odpoveď: Nižšie sú uvedené rôzne typy operátorov v PL / SQL.
- Bitoví operátori
- Prevádzkovatelia pridelenia
- Aritmetické operátory
- Relační operátori
- Logickí operátori
Záver
V tomto výučbe sme sa zaoberali veľkou časťou PL / SQL zaoberajúcou sa témami ako viac operátorov a ich dôležitosťou s príkladmi kódu.
Tiež sme podrobne preskúmali riadiace príkazy PL SQL. Riadiace príkazy pozostávajú zo štruktúr programu, ako je iterácia, podmienka a postupnosť.
V ďalšom tutoriáli sa budeme zaoberať postupmi, funkciami, kurzormi a mnohými ďalšími súvisiacimi témami PL SQL.
Odporúčané čítanie
- Výukový program PL SQL pre začiatočníkov s príkladmi Čo je to PL / SQL
- Operátory Pythonu
- Podmienečné vyhlásenia Unixu: Ak sú to iní a relačné operátory
- Kontrolné príkazy Pythonu (Python Continue, Break and Pass)
- Výukový program o podmienených vyhláseniach C #
- Ovládanie zdroja alebo riadenia verzií v DevOps (videonávod, časť 2 - blok 2)
- Smyčky v C #: Kontrolné príkazy a rôzne slučky s príkladmi
- Výukový program pre korytnačky SVN: Revízie v úložisku kódov