pl sql operators control statements tutorial
Örnek kod örnekleriyle, if-then-else, for loop, while loop vb. Gibi farklı PL SQL Operatörleri ve Kontrol İfadeleri hakkında bilgi edinin:
İçinde PL / SQL Komutları öğreticisi PL / SQL serisi PL SQL INSERT, UPDATE, DELETE ve SELECT komutlarını programlama örnekleri ile öğrendik.
Bu yazıda, ilişkisel, mantıksal, aritmetik ve karşılaştırma operatörleri gibi PL / SQL'in desteklediği farklı operatörleri tartışacağız. Ayrıca PL / SQL'de yaygın olarak kullanılan kontrol ifadelerini de araştıracağız.
PL / SQL koşulu ve yinelemeli yapılar, bu öğreticide buradaki örneklerle ayrıntılı olarak açıklanmıştır.
qtp'de açıklayıcı programlama nedir
Ne öğreneceksin:
PL SQL Operatörleri
Bir PL SQL operatörü, derleyiciyi bir sembol yardımıyla aritmetik ve mantıksal işlemler yapmaya yönlendirir.
Varsayılan olarak, PL / SQL aşağıdaki operatör türlerine sahiptir:
- Aritmetik
- Karşılaştırma
- Mantıklı
- Dize
- İlişkisel
# 1) Aritmetik Operatörler
| Sembol | Açıklama | |
|---|---|---|
| 7 | VE | bağlaç |
| + | İki işlenen toplamayı gerçekleştirir. | |
| * | İki işlenenin çarpımını gerçekleştirir. | |
| / | İki işlenenin bölünmesini gerçekleştirir. | |
| - | İki işlenenin çıkarılmasını gerçekleştirir. | |
| ** | Üstel işlem gerçekleştirir. |
Aritmetik operatörlerle kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 2) İlişkisel Operatörler
Bu operatörler, Boolean'da karşılaştırma ve döndürme değerlerini gerçekleştirir.
| Seri numarası. | Sembol | Açıklama |
|---|---|---|
| 1 | > | Sol işlenenin değerinin sağdan büyük olup olmadığını doğrular. |
| iki | < | Sağ işlenenin değerinin soldan büyük olup olmadığını doğrular. |
| 3 | > = | Sol işlenenin değerinin sağa eşitten büyük olup olmadığını doğrular. |
| 4 | <= | Sağ işlenenin değerinin sola eşitten büyük olup olmadığını doğrular. |
| 5 | = | İki işlenenin eşit olup olmadığını doğrular. |
| 6 | ! =, ~ =, | İki işlenenin eşit olup olmadığını doğrular. |
İlişkisel operatörlerle kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 3) Karşılaştırma Operatörleri
Bu operatör, bir ifadeyi diğeriyle karşılaştırmanın sonucuna göre çıktıyı doğru, yanlış veya boş değer olarak verir.
| Sembol | Açıklama |
|---|---|
| ARASINDA | Bir değerin bir aralıkta olup olmadığını doğrular. |
| İÇİNDE | Bir değerin bir üye kümesine eşit olup olmadığını doğrular. |
| SEVMEK | Bir dizenin veya karakterin bir desene benzer olup olmadığını doğrular. |
| BOŞ | Bir işlenenin Null değerine eşit olup olmadığını doğrular. |
Karşılaştırma operatörü ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 4) Mantıksal Operatörler
PL / SQL, birden fazla mantıksal operatörü destekler. Doğası gereği Boole olan işlenenler üzerinde hareket ederler ve aynı zamanda Boolean sonuçları verirler.
| Seri numarası. | Sembol | Açıklama |
|---|---|---|
| 1 | DEĞİL | Mantıksal NOT olarak bilinir. Sonuç doğruysa, bunu yanlış yapar. |
| iki | VE | Mantıksal AND olarak bilinir. Tüm işlenenler doğruysa, sonuç doğrudur. |
| 3 | VEYA | Mantıksal OR olarak bilinir. İşlenenlerden herhangi biri doğruysa, sonuç doğrudur. |
Mantıksal operatörlerle kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

Operatör Önceliği
PL SQL operatör önceliği, bir veya birden fazla operatörü veya birden fazla operand içeren bir işlemin nasıl yapılacağını tanımlamak için ayarlanır. Daha yüksek önceliğe sahip operatörler, diğerlerinden önce hesaplanırken, aynı önceliğe sahip operatörler belirli bir sırayla manipüle edilmez.
Aşağıdaki tablo, operatörleri yüksekten düşüğe doğru sıralamaktadır.
| Seri numarası. | Sembol | Açıklama |
|---|---|---|
| 1 | ** | üstel işlem |
| iki | +, - | toplama çıkarma |
| 3 | *, / | çarpma, bölme |
| 4 | +, -, || | toplama, çıkarma, birleştirme |
| 5 | karşılaştırma operatörleri | |
| 6 | DEĞİL | olumsuzluk |
| 8 | VEYA | dahil etme |
PL / SQL'de Kontrol İfadeleri
PL / SQL'deki kontrol yapıları, aşağıdaki gibi program yapılarından oluşur. yineleme, sıra, ve seçim . Seçim biçimi bir koşulu doğrular, ardından doğru veya yanlışın sonuçlarına göre bir sonraki kod bloğunu sırayla işler.
Yineleme biçimi, koşul geçerli olana kadar bir kod bloğunu veya ifadeleri tekrar tekrar çalıştırır. Son olarak, sıra biçimi, ifadeleri mevcut oldukları sıraya göre tek tek işler.
PL SQL'de Durum İfadesi
Karar verme senaryolarında IF-THEN, IF-THEN-ELSE, IF-THEN-ELSEIF ve CASE gibi koşul ifadeleri kullanılır.
# 1) IF-THEN: Bu, IF ifadelerinin temel biçimlerinden biridir. ENDIF ve THEN anahtar kelimelerini içeren bir kod bloğu içerir. Bir koşulun sonucu doğruysa, sonraki kod bloğu çalıştırılmaz.
IF-THEN'in Yapısı:
IF condition THEN Block of code END IF;Bunun gibi tek bir satırda kısa bir IF –THEN bloğu da tutabiliriz.
IF big > small THEN temp: = big; END IF;IF-THEN ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 2) EĞER-DEĞİLSE: Bu, ELSE anahtar sözcüğüne ve ardından bir sonraki kod bloğuna sahip olan bir sonraki IF ifadesi biçimidir. Bu ELSE ifadeleri bloğu isteğe bağlıdır ve koşul FALSE olduğunda yürütülür.
IF-THEN-ELSE'nin Yapısı:
IF condition THEN Block of code 1 ELSE Block of code 2 END IF; IF-THEN-ELSE ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 3) IF-THEN-ELSIF: Bu koşullu ifade, alternatifler arasından seçim yapma seçeneği sunar. BAŞKA… BAŞKA kod bloğu isteğe bağlı olarak IF-THEN ifadesinden sonra gelebilir. Bu nedenle, birbirini dışlayan birden fazla seçenekle uğraşırken kullanılır.
Bir IF-THEN kod bloğu, ELSE ifadesinden önce görünmeleri koşuluyla hiçbirine veya birden fazla ELSIF'e sahip olabilir. Bir ELSIF bloğunda gerçek bir koşulla karşılaştığımızda, diğer ELSE veya ELSIF'ler göz ardı edilecektir.
IF-THEN-ELSIF'in Yapısı:
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 ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı:

# 4) VAKA BİLDİRİMİ: Bu koşullu ifade, seçenekler arasından bir kod bloğu seçecektir. Bununla birlikte, IF ifadeleri gibi, CASE de Boolean girdisi kullanmaz, ancak seçeneklerden birini seçmeye yardımcı olan bir ifade kullanır.
CASE ifadesinin son seçeneği varsayılandır. DURUM AÇIKLAMASI, IF ifadelerine kıyasla daha verimli ve daha az uzundur.
VAKA BİLDİRİMİNİN YAPISI
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 ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı:

# 5) ARANAN DURUM İfadesi: Bu koşullu ifade herhangi bir seçici içermez ve WHEN kod bloğu yalnızca Boolean sonuçları verir ve diğer veri türlerinin herhangi bir değerini vermez.
ARANAN DURUM İfadesinin Yapısı:
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;ARANAN ÖRNEK İfadesi ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 6) DEĞİLSE İSE YERLEŞTİRİLMİŞ: Bu koşullu ifade, başka bir EĞER veya EĞER EĞER içinde EĞER EĞER veya EĞER bloğunun kullanılmasını sağlar.
NESTED IF-THEN-ELSE’nin Yapısı:
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 ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

PL SQL'de Yinelemeli İfade
PL / SQL'de mantığı uygularken, bir kod bloğunu birkaç kez tekrar tekrar işlememiz gerekebilir. Bu, LOOP ifadelerinin yardımıyla elde edilir. Bunlar üç türdendir, FOR-LOOP, WHILE-LOOP ve LOOP.
# 1) PL SQL DÖNGÜLERİ
Bir DÖNGÜ, aşağıdaki gibi temel bir yapıya sahiptir:
LOOP Block of code END LOOP; Her yinelemeden sonra, program akışı belirli bir koşul sağlanana kadar döngünün en üstüne geri döner. Bir durumdan dolayı döngüden çıkmak istiyorsak, bu durumda EXIT komutu kullanılabilir.
# 2) PL SQL DÖNGÜSÜNDE
Bu döngü, koşul geçerli olana kadar bir kod bloğunu birçok kez çalıştıracaktır. Her yinelemenin başlangıcında döngü koşulu kontrol edilir. Eğer karşılanırsa, kod bloğu yürütülür.
Koşul boşsa veya tatmin edilmezse döngüden kaçınılır ve bir sonraki kod bloğu yürütülür.
WHILE LOOP'un Yapısı:
WHILE condition LOOP Block of code END LOOP; WHILE LOOP ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 3) DÖNGÜ İÇİN PL SQL
Bu tür bir döngü, bir kod bloğunun belirli sayıda çalıştırılmasına izin verir. Başlangıç adımı bir kez yürütülür. Bu, öncelikle döngü değişkenlerinin başlatılması ve bildirilmesi için kullanılır. Ardından sınır değerleri (başlangıç ve bitiş aralığı) kontrol edilir. Koşul yerine getirilirse, DÖNGÜ içindeki kod bloğu yürütülür. Değilse, program akışı döngüden sonra aşağıdaki kod bloğuna geçer.
Bir yinelemeden sonra, döngü sayacı bir artar veya azalır. Döngü koşulu karşılanana kadar tüm süreç devam eder. Koşul YANLIŞ olduğunda döngü sona erer.
PL / SQL'de döngünün başlangıç ve bitiş aralığı çalışma zamanında değiştirilebilir. Döngünün sayacı bir tam sayı, sayı vb. Olmalıdır (sayısal olarak artırılabilir veya azaltılabilir). Sayaç değişkeninin başlangıç değeri herhangi bir sayı olabilir.
FOR LOOP'un Yapısı:
FOR counter IN start_value .. end_value LOOP Block of code 1 END LOOP; FOR LOOP'un kod uygulaması:
DECLARE num number(10,1); BEGIN FOR num in 1.. 5 LOOP dbms_output.put_line('The num is:' || num); END LOOP; END; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 4) İÇİNDE DÖNGÜ
Bu tür bir ifade, bir döngü üzerinde diğerine izin verir. Dış ve iç döngü yapısı aynı veya farklı tiplerde olabilir. Her geçişten sonra, her iki döngünün de başarıyla çalışması gerekir.
İç İçe Döngünün Yapısı:
LOOP (outer) Block of code 1 LOOP (inner) Block of code 2 END LOOP; END LOOP;NESTED LOOP ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

PL / SQL'de Döngü Etiketleri
PL / SQL'de, kodun okunabilirliğini ve anlamını artıran döngüleri etiketleme hükmüne sahibiz. Etiket, çift açılı parantezlerle ( << ve >> ) ve DÖNGÜ ifadesinin üst kısmında belirtilir. Etiket ayrıca LOOP'un sonuna da yerleştirilebilir.
Etiket ayrıca döngüden çıkarken EXIT ifadeleri için de tanımlanabilir.
ETİKETLERİN YAPISI:
<> LOOP Block of Code END LOOP;LOOP LABEL ile kod uygulaması:
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; /Sıra Kontrol İfadeleri
Kontrol ifadesi, programın yürütme akışını değiştirmek için kullanılır.
# 1) ÇIKIŞ
Bir EXIT ifadesi bir döngüyü açıkça keser. ÇIKIŞ döngüde bulunduğunda, döngü kesilir ve program akışı bir sonraki kod bloğuna geçer. İç içe döngüler kullandığımız durumlarda, EXIT ifadesi önce iç döngüyü sonlandıracak ve ardından hemen ardından görünen kod bloğunu çalıştıracaktır.
EXIT ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 2) DEVAM
Bu kontrol ifadesi, döngünün ortaya çıkmasını ve gerçekleşmesi için bir sonraki yinelemeye geçmesini sağlar.
CONTINUE ile kod uygulaması:
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; /Yukarıdaki kodun çıktısı şöyle olmalıdır:

# 3) GİT
GOTO komutu, kontrolü koşulsuz olarak benzersiz bir etiketli kod bloğuna taşır. GOTO komutlarını kullanmak iyi bir programlama tekniği değildir çünkü kodun okunabilirliğini ve izlenebilirliğini azaltır.
GOTO'nun Yapısı:
GOTO 60; .. .. <> Block of code 1; GOTO ifadesiyle kodlama uygulaması:
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;Yukarıdaki kodun çıktısı şöyle olmalıdır:

Sıkça Sorulan Sorular
S # 1) PL / SQL'deki kontrol ifadesi nedir?
Cevap: PL / SQL'deki kontrol ifadeleri üç türdendir - döngü ifadeleri, sıralı ifadeler ve kontrol ifadeleri. Döngü ifadesi WHILE LOOP, FOR LOOP ve temel LOOP'tan oluşur.
S # 2) PL / SQL'de eşitliği nasıl kontrol edersiniz?
Cevap: PL / SQL'de, eşitliği kontrol eden eşitlik operatörüne sahibiz.
Örneğin,
SELECT NAME FROM EMPLOYEE WHERE AGE = 50;S # 3) PL / SQL'de sonsuz bir döngüyü nasıl durdurursunuz?
Cevap: EXIT deyimleri yardımıyla PL / SQL'de sonsuz bir döngüyü durdurabiliriz. EXIT ifadelerini döngünün dışında değil döngü içinde tutmamız gerekir.
S # 4) PL / SQL'deki koşullu kontrol yapısının amacı nedir?
Cevap: Koşullu kontrol yapısı, bazı kriterlere bağlı olarak programın akışını kontrol etme seçeneği sunar. Bu nedenle programdaki kod sırayla çalışmaz. Koşula bağlı olarak bir kod bloğu yürütülür.
S # 5) 6 ilişkisel operatör nedir?
Cevap: PL / SQL'in ilişkisel operatörleri =,,! =, == şeklindedir.
S # 6) Farklı operatör türleri nelerdir?
Cevap: PL / SQL'deki farklı operatör türleri aşağıda listelenmiştir:
- Bitsel Operatörler
- Atama Operatörleri
- Aritmetik operatörler
- İlişkisel Operatörler
- Mantıksal operatörler
Sonuç
Bu öğreticide PL / SQL'in büyük bir bölümünü, birden çok operatör gibi konuları ve bunların kod örnekleriyle önemini ele aldık.
Ayrıca, PL SQL kontrol ifadelerini ayrıntılı olarak inceledik. Kontrol ifadeleri, yineleme, koşul ve sıra gibi program yapılarından oluşur.
Bir sonraki eğitimde, PL SQL prosedürlerini, işlevlerini, imleçlerini ve daha birçok ilgili konuyu tartışacağız.
Önerilen Kaynaklar
- Örneklerle Yeni Başlayanlar İçin PL SQL Eğitimi | PL / SQL Nedir
- Python Operatörleri
- Unix Koşullu İfadeler: O Zaman Değilse ve İlişkisel Operatörler
- Python Kontrol İfadeleri (Python Devam Et, Kes ve Geç)
- C # Koşullu İfadeler Hakkında Öğretici
- DevOps'ta Kaynak Kontrolü veya Sürüm Kontrolü (Video Eğitimi Bölüm 2 - Blok 2)
- C # 'da Döngüler: Kontrol İfadeleri ve Örneklerle Çeşitli Döngüler
- Kaplumbağa SVN Eğitimi: Kod Deposundaki Revizyonlar