pl sql operators control statements tutorial
Дізнайтеся про різні оператори та оператори PL PL, такі як if-then-else, for loop, while loop тощо, з прикладами прикладів коду:
В Команди PL / SQL підручник з PL / SQL серія , ми дізналися про команди PL SQL INSERT, UPDATE, DELETE та SELECT із прикладами програмування.
У цій статті ми обговоримо різні оператори, які підтримує PL / SQL, такі як реляційні, логічні, арифметичні та оператори порівняння. Ми також дослідимо оперативні твердження, які широко використовуються в PL / SQL.
Умови PL / SQL та ітераційні структури були детально пояснені на прикладах у цьому посібнику.
що таке регресійне тестування на прикладі
Що ви дізнаєтесь:
PL SQL Оператори
Оператор PL SQL спрямовує компілятор виконувати арифметичні та логічні операції за допомогою символу.
За замовчуванням PL / SQL має такі типи операторів:
- Арифметика
- Порівняння
- Логічний
- Рядок
- Реляційні
# 1) Арифметичні оператори
Символ | Опис | |
---|---|---|
7 | І | сполучником |
+ | Виконує додавання двох операндів. | |
* | Виконує множення двох операндів. | |
/ | Виконує ділення двох операндів. | |
- | Виконує віднімання двох операндів. | |
** | Виконує експоненціальну операцію. |
Впровадження коду з арифметичними операторами:
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; /
Результатом роботи вищезазначеного коду має бути:
# 2) Реляційні оператори
Ці оператори виконують значення порівняння та повернення в логічній формі.
Серійний номер. | Символ | Опис |
---|---|---|
один | > | Перевіряє, чи більше значення лівого операнда, ніж правого. |
два | < | Перевіряє, чи більше значення правого операнда, ніж лівого. |
3 | > = | Перевіряє, чи значення лівого операнда більше рівного правому. |
4 | <= | Перевіряє, чи значення правого операнда більше рівного лівому. |
5 | = | Перевіряє, чи рівні два операнди. |
6 | ! =, ~ =, | Перевіряє, якщо два операнди не рівні. |
Впровадження коду за допомогою реляційних операторів:
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; /
Результатом роботи вищезазначеного коду має бути:
# 3) Оператори порівняння
Цей оператор надає вихідні дані як істинне, хибне або нульове значення на основі результату порівняння одного твердження з іншим.
Символ | Опис |
---|---|
МІЖ | Перевіряє, чи знаходиться значення в діапазоні. |
В | Перевіряє, чи значення дорівнює набору членів. |
ПОДІБНО ДО | Перевіряє, чи рядок або символ подібні до шаблону. |
НІЩЕ | Перевіряє, чи операнд дорівнює значенню Null. |
Впровадження коду з оператором порівняння:
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; /
Результатом роботи вищезазначеного коду має бути:
# 4) Логічні оператори
PL / SQL підтримує більше одного логічного оператора. Вони діють на операнди, які мають булеву природу і також дають булеві результати.
Серійний номер. | Символ | Опис |
---|---|---|
один | НЕ | Відомий як логічний НЕ. Якщо результат правдивий, то НЕ робить його хибним. |
два | І | Відомий як логічний І. Якщо всі операнди є істинними, результат є істинним. |
3 | АБО | Відомо як логічне АБО. Якщо хтось із операндів відповідає дійсності, результат правдивий. |
Впровадження коду за допомогою логічних операторів:
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; /
Результатом роботи вищезазначеного коду має бути:
Перевага оператора
Пріоритет оператора PL SQL встановлюється, щоб визначити, як слід виконувати операцію, що включає один або кілька операторів або більше, ніж один операнд. Оператори з вищим пріоритетом обчислюються першими, ніж інші, тоді як оператори з однаковим пріоритетом маніпулюють у певній послідовності.
У наведеній нижче таблиці перелічені оператори від високого до низького пріоритету.
Серійний номер. | Символ | Опис |
---|---|---|
один | ** | експоненціальна операція |
два | +, - | додавання, віднімання |
3 | *, / | множення, ділення |
4 | +, -, || | додавання, віднімання, об'єднання |
5 | оператори порівняння | |
6 | НЕ | заперечення |
8 | АБО | включення |
Заяви про управління в PL / SQL
Структури управління в PL / SQL складаються з таких програмних структур, як ітерація, послідовність, і відбір . Форма вибору перевіряє умову, а потім на основі результатів true або false обробляє наступний блок коду по порядку.
Форма ітерації повторно запускає блок коду або операторів, доки умова не буде дійсним. Нарешті, форма послідовності обробляє твердження по черзі в тому порядку, в якому вони є.
Заява про стан у PL SQL
У сценаріях прийняття рішень застосовуються такі умови, як IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF і CASE.
# 1) ЯКЩО-ТО: Це одна з основних форм тверджень IF. Він містить блок коду з ключовими словами ENDIF і THEN. Якщо результат умови є істинним, наступний блок коду виконується в іншому випадку, ні.
Структура IF-THEN:
IF condition THEN Block of code END IF;
Ми також можемо тримати короткий блок IF –THEN на одному рядку, як цей.
IF big > small THEN temp: = big; END IF;
Впровадження коду з 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; /
Результатом роботи вищезазначеного коду має бути:
# 2) ЯКЩО-ТАК ІНШЕ: Це наступна форма оператора IF, що має ключове слово ELSE, а потім наступний блок коду. Цей блок операторів ELSE є необов’язковим, і він виконується, коли умовою є FALSE.
Структура IF-THEN-ELSE:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF;
Впровадження коду з 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; /
Результатом роботи вищезазначеного коду має бути:
# 3) IF-THEN-ELSIF: Це умовне твердження дає можливість вибору серед альтернатив. ELSE… Блок коду ELSE може необов’язково з’являтися після оператора IF-THEN. Таким чином, він використовується при вирішенні багатьох взаємовиключних варіантів.
Блок IF-THEN коду не може мати жодного або декількох файлів ELSIF за умови, що вони з’являються перед оператором ELSE. Як тільки ми зустрінемо справжню умову в одному блоці ELSIF, інші ELSE або ELSIF будуть проігноровані.
Структура 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;
Впровадження коду за допомогою 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; /
Результатом роботи вищезазначеного коду є:
# 4) ПОЯСНИК СПРАВИ: Цей умовний оператор вибере один блок коду з варіантів. Однак, як і оператори IF, CASE використовує не булеве введення, а вираз, який допомагає вибрати один із варіантів.
Останній вибір оператора CASE - це варіант за замовчуванням. CASE STATEMENT є більш ефективним та менш тривалим порівняно з твердженнями IF.
Структура СПРАВИ:
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;
Впровадження коду за допомогою 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; /
Результатом роботи вищезазначеного коду є:
No5) ПОЯС, ЩО ШУКАТИСЯ: Цей умовний оператор позбавлений будь-якого селектора, і блок WHEN коду дає лише булеві результати, а не будь-яке значення інших типів даних.
Структура ПОШУКОВОЇ СПРАВИ:
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;
Впровадження коду за допомогою ПОЯСНОЇ СПРАВИ:
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; /
Результатом роботи вищезазначеного коду має бути:
# 6) ВГНІДЕНИЙ, ЩОБ ТАК ІНШЕ: У цьому умовному викладі подано положення про використання ELSE IF або блоку IF у межах іншого IF або ELSE IF.
Структура 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;
Впровадження коду за допомогою 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; /
Результатом роботи вищезазначеного коду має бути:
Ітераційне твердження в PL SQL
Під час реалізації логіки в PL / SQL нам може знадобитися кілька разів обробити блок коду. Це досягається за допомогою операторів LOOP. Це три типи, ДЛЯ ЦИКЛУВАННЯ, ВІДМИННОГО ЦИКЛУВАННЯ І ЦИКЛОВОГО ЗМІ.
# 1) PL SQL LOOPS
LOOP має базову структуру, як показано нижче:
LOOP Block of code END LOOP;
Після кожної ітерації потік програми спрямовується назад у верхню частину циклу, поки не буде виконана певна умова. У випадку, якщо ми хочемо вийти з циклу через ситуацію, в такому випадку може бути використаний оператор EXIT.
# 2) PL SQL ПІД ЧАС ЦИКЛУ
Цей цикл буде запускати блок коду кілька разів, поки умова не буде дійсним. На початку кожної ітерації перевіряється умова циклу. Якщо це задоволено, блок коду виконується.
Якщо умова є нульовою або не виконується, цикл уникається і виконується наступний блок коду.
Структура WHILE LOOP:
WHILE condition LOOP Block of code END LOOP;
Впровадження коду за допомогою 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; /
Результатом роботи вищезазначеного коду має бути:
# 3) PL SQL ДЛЯ ЦИКЛУ
Цей тип циклу дозволяє виконувати блок коду певну кількість разів. Початковий крок виконується один раз. Це в основному використовується для ініціалізації та оголошення змінних циклу. Потім перевіряються граничні значення (початковий та кінцевий діапазони). Якщо умова виконана, виконується блок коду всередині LOOP. Якщо ні, потік програми переходить до наступного блоку коду після циклу.
Після однієї ітерації лічильник циклу збільшується або зменшується на одиницю. Весь процес триває, поки не буде виконана умова циклу. Коли умова стає FALSE, цикл закінчується.
У PL / SQL початковий і кінцевий діапазон циклу можна змінювати під час виконання. Лічильником для циклу має бути ціле число, число тощо (яке можна числово збільшити або зменшити). Початковим значенням змінної лічильника може бути будь-яке число.
Структура FOR LOOP:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP;
Впровадження коду 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; /
Результатом роботи вищезазначеного коду має бути:
No4) ВГНЕЗДЕНА ЦИКЛО
Цей тип оператора дозволяє один цикл над іншим. Зовнішня та внутрішня циклічна структура може бути одного типу або різного типу. Після кожного обходу обидві петлі повинні успішно працювати.
Структура вкладеної петлі:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;
Впровадження коду за допомогою 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; /
Результатом роботи вищезазначеного коду має бути:
Циклічні мітки в PL / SQL
У PL / SQL ми маємо можливість маркування циклів, що підвищує читабельність та значення коду. Етикетка представлена подвійними кутовими дужками ( << і >> ) і згадуються у верхній частині заяви LOOP. Етикетку можна також розмістити в кінці LOOP.
Мітка також може бути описана для операторів EXIT під час виходу з циклу.
Структура ЕТИКЕТ:
<> LOOP Block of Code END LOOP;
Впровадження коду за допомогою 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; /
Заяви про контроль послідовності
Оператор керування використовується для модифікації потоку виконання програми.
# 1) ВИХІД
Оператор EXIT явно розриває цикл. Коли у циклі знайдено EXIT, цикл обривається, і потік програми переходить до наступного блоку коду. В умовах, коли ми використовуємо вкладені цикли, оператор EXIT спочатку завершує внутрішній цикл, а потім виконує блок коду, який з'являється відразу після нього.
Впровадження коду з 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; /
Результатом роботи вищезазначеного коду має бути:
# 2) ПРОДОВЖИТИ
Цей оператор управління дозволяє циклу вийти і перейти до наступної ітерації.
Впровадження коду з CONTINUE:
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; /
Результатом роботи вищезазначеного коду має бути:
# 3) ГОТО
Оператор GOTO безумовно переміщує елемент керування до унікального позначеного блоку коду. Використовувати оператори GOTO не є хорошою технікою програмування, оскільки це зменшує читабельність та відстежуваність коду.
Структура GOTO:
GOTO 60; .. .. <> Block of code 1;
Реалізація кодування за допомогою оператора 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;
Результатом роботи вищезазначеного коду має бути:
Часті запитання
Q # 1) Що таке вираз керування в PL / SQL?
Відповідь: Оператори керування в PL / SQL мають три типи - оператори циклу, послідовні оператори та оператори управління. Оператор циклу складається з WHILE LOOP, FOR LOOP і basic LOOP.
Q # 2) Як перевірити рівність у PL / SQL?
Відповідь: У PL / SQL ми маємо оператор рівності, який перевіряє рівність.
Наприклад,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;
Q # 3) Як зупинити нескінченний цикл у PL / SQL?
Відповідь: Ми можемо зупинити нескінченний цикл у PL / SQL за допомогою операторів EXIT. Нам потрібно тримати оператори EXIT всередині циклу, а не поза ним.
Q # 4) Яка мета умовної структури управління в PL / SQL?
Відповідь: Умовна структура управління дає можливість керувати потоком програми залежно від деяких критеріїв. Таким чином, код у програмі не працює послідовно. Блок коду виконується на основі умови.
Q # 5) Які 6 реляційних операторів?
Відповідь: Реляційними операторами PL / SQL є =,,! =, ==.
Q # 6) Які існують різні типи операторів?
Відповідь: Різні типи операторів у PL / SQL перелічені нижче:
- Побітові оператори
- Оператори присвоєння
- Арифметичні оператори
- Реляційні оператори
- Логічні оператори
Висновок
Ми розглянули велику частину PL / SQL у цьому посібнику, присвяченому таким темам, як множинні оператори та їх важливість, на прикладах коду.
Крім того, ми детально вивчили оператори керування PL SQL. Інструкції управління складаються з програмних структур, таких як ітерація, умова та послідовність.
У наступному уроці ми обговоримо процедури SQL PL, функції, курсори та багато інших суміжних тем.
Рекомендована література
- PL SQL Підручник для початківців з прикладами Що таке PL / SQL
- Оператори Python
- Умовні твердження Unix: якщо тоді інше та реляційні оператори
- Заяви про керування Python (продовження, розбиття та передача Python)
- Підручник з умовних тверджень C #
- Контроль джерела або контроль версій у DevOps (Підручник з відео, Частина 2 - Блок 2)
- Цикли в C #: Управління заявами та різні цикли з прикладами
- Підручник з черепахи SVN: Редакції у сховищі коду