ben

OMÜ , Bilgisayar Mühendisliği, 13'

28 Mart 2022 Pazartesi

Temel SQL programlama-2


Döngüler belli bir başlangıç değerinden belli bir bitiş değerine kadar olan sayıda dönerler ve her bir döngü içinde verilen komutları yerine getirirler. 

örnek olarak 1 den 10 a kadar sayıların toplamını getiren plsql komutunu 3 farklı loop ile yazalım ki aradaki farklılığı görmüş olalım.(1 ve 10 dahil)

6. Loop Döngüsü

Loop komutu verilen değerler arasında işlem yapmamız için bize fayda sağlayan plgpsql komutlarından birisidir.

do $$
declare 
   sayac int:=1 ;
   toplam int:=0;
begin
       Loop
   toplam:=toplam+sayac;
   sayac=sayac+1;
   exit when sayac=11;
       end loop;
      raise notice 'toplam sonucu:%',toplam;
end $$



7. For Loop Döngüsü

FOR LOOP komutu ise Loop komutunda yapılacak işlemlerini biraz daha kısaltarak daha kolay yapmamızı sağlayan komutlardan birisidir.
kullnım:  for sayac in 1 .. 10 by 1  => 1 den başla 10 a kadar 1er 1 er devam et

do $$
declare 
   toplam int:=0;
begin
       for sayac in 1 .. 10 by 1
       Loop
   toplam:=toplam+sayac;
       end loop;
       raise notice 'Loop toplam sonucu:%',toplam;
end $$



8. While Loop Döngüsü

Loop kullanımına çok benzese de ufak farklılıkları vardır.


do $$
declare 
       sayac int:=1;
   toplam int:=0;
begin
       while sayac<11 loop
   toplam:=toplam+sayac;
   sayac:=sayac+1;
      end loop;
     raise notice 'While Loop toplam sonucu:%',toplam;
end $$



9. Query Loop(sorgu sonucunda döngü kurma)

Bazen belli bir sayısal dizin içinde değil, sorgu ile gelen veriler içinde döngü kurmamız gerekebilir. Bu işlem için çoğu kez cursorler kullanılsa da for loop ile daha kolay bir yolu var. Film tablosunda filmin süresi 160 dan buyuk olanları döngü ile ekrana yazdırmak için;

do $$
declare
    f record;
begin
    for f in (select title, length 
       from film where length>160
       order by title )
    loop 
raise notice '% (% dakika)', f.title, f.length;
    end loop;
end;
$$






Hiç yorum yok: