ben

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

28 Mart 2022 Pazartesi

Temel SQL programlama-1

 1: Blok yapısı 

Postgresql yapısında programlama komutları do end blogu içine yazılır. Bu blog içerisinde kullanılacak değişkenler ise do end içindeki declare kısmına yazılır.
Temel blog yapısı aşağıdaki gibidir.

do $$

declare 
        -- değişkenler tanımlanır
begin
        -- komutlar yazılır
end $$

2. Değişkenler

değişkenlerin türleri sql veri türleri ile aynıdır. bir değişkene birden fazla şekilde veri aktarımı yapılır.
 * tanımlandığı yerde değer aktarımı:
            declare a int :=5;
 * tanımlandıktan sonra veri aktarımı:
            declare a int;
            a:=6; 
 * sorgudan gelen değeri değişkene atmak:
            - sayi:=(select count(*) from film);
            - select count(*) into sayi from film;

3. Ekrana Yazdırmak

Değişken içindeki değeri uyarı ekranına yazdırmak için ;
   * raise notice 'toplam film sayisi : %',sayi;

Değişkensiz ekran uuyarısı için;
    * raise notice 'bu basit bir uyarıdır'        

4. Karar yapısı if-else

a ve b değerlerinin  büyüklük küçüklük değerini gösterebilmek için ;

do $$
declare 
       a int :=6;
       b int :=3;
begin
       if a>b then
            raise notice 'a büyük';
       elsif b>a then
            raise notice 'b buyuk';
       else
            raise notice 'eşit';
       end if;
end $$




5. Case Kullanımı

do $$
declare 
       a int :=6;
       b int :=3;
begin
  case
       when a>b then
            raise notice 'a büyük';
       when b>a then
            raise notice 'b buyuk';
       else
            raise notice 'eşit';
       end case;
end $$



Örnek: Basit hesap makinesi:

* if ile yapımı;

do $$
declare 
       a int :=6;
       b int :=3;
   secenek char:='*';
   sonuc float;
begin
       if secenek='+' then
       sonuc:=a+b;
                raise notice 'toplam:%',sonuc;
       elsif secenek='-' then
        sonuc:=abs(a-b);
                raise notice 'fark:%',sonuc;
        elsif secenek='*' then
        sonuc:=a*b;
                raise notice 'carpım:%',sonuc;
        elsif secenek='/' then
        sonuc:=a/b;
                raise notice 'bolum:%',sonuc;
       else
                raise notice 'lutfen doğru işlem seciniz';
       end if;
end $$

* case ile yapımı;

do $$
declare 
       a int :=6;
       b int :=3;
   secenek char:='*';
   sonuc float;
begin
  case
       when secenek='+' then
     sonuc:=a+b;
             raise notice 'toplam:%',sonuc;
       when secenek='-' then
    sonuc:=abs(a-b);
            raise notice 'fark:%',sonuc;
      when secenek='*' then
    sonuc:=a*b;
            raise notice 'carpım:%',sonuc;
      when secenek='/' then
    sonuc:=a/b;
            raise notice 'bolum:%',sonuc;
      else
            raise notice 'lutfen doğru işlem seciniz'; 
     end case;
end $$




Hiç yorum yok: