SQL DERS NOTLARI 2

Gönderen Konu: SQL DERS NOTLARI 2  (Okunma sayısı 2152 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı admin

  • Uzman Kullanıcı
  • Logo Uzmanı
  • *****
  • Karma: 98
SQL DERS NOTLARI 2
« : 11.06.2006, 13:45 »

SQL'DE ARİTMETİKSEL İFADELER VE FNKSİYONLAR :

 

KÜME FONKSİYONLARI:

 

SUM FONKSİYONU:

 

SUM           TOPLA

 

Fonksiyonun argümanı olarak belirtilen sütun ile ilişkili olana toplama işlemini gerçekleştirir.

 

ÖRNEK:İşletmedeki personelin brüt  maaşlar toplamı  ne kadardır?

 

SELECT  SUM (brüt)                                       SEÇ  TOPLA(brüt)

FROM  personel;                                              GELİŞ  personel;

 

AVG FONKSİYONU:

 

AVG            ORT

 

Aritmetiksel  ortalama (average) hesaplamak için kullanılır.

 

SELECT  AVG(brüt)                                        SEÇ ORT (brüt)

FROM   personel;                                             GELİŞ  personel;

 

MAX FONKSİYONU:

 

MAX           ÜST

 

Tablo içinde ,belirtilen sutun (alan)içindeki en büyük değeri bulur.

 

ÖRNEK:İşletme içindeki en yüksek maaş ne kadardır?

 

SELECT  MAX (brüt)                                      SEÇ ÜST (brüt)

FROM  personel;                                              GELİŞ personel;

 

 

MIN FONKSİYONU:

 

MIN         ALT

 

Tablo içinde,belirlenen sutun alan içindeki en küçük değeri bulur.

ÖRNEK:İşletme içinde 4 Mayıs  1970’den önce doğanlar için,asgari ücret nedir?

 

SELECT  MIN(brüt)                                        SEÇ   ALT(brüt)

FROM  personel                                               GELİŞ  personel

WHERE dog_tar < {05/04/70};                        OLAN  dog_tar < {05/04/70};

 

COUNT FONKSİYONU:

 

COUNT        SAY

 

Tablo içinde ,her hangi bir sayma işlemi gerçekleştirmek için kullanılır.

 

ÖRNEK:Ücreti 6000000’dan  olan personel sayısı nedir?

 

SELECT COUNT  (*)                                      SEÇ SAY(*)

FROM   personel                                              GELİŞ  personel

WHERE brüt > 6000000;                                 OLAN brüt > 6000000;

 

COUNT (SAY)  fonksiyonu  DISTINCT (TEKRARSIZ)sözcüğü ile de  kullanılır.

 

ÖRNEK:Personel tablosunda  mevcut  personelin işletme içinde kaç tane farklı  bölümde çalıştığını  bul.

 

SELECT  COUNT(DISTINCT böl_no)         SEÇ SAY (TEKRARSIZ böl_no)

FROM  personel;                                              GELİŞ  personel;

COUNT (böl_no)                                              SAY (böl_no)

 

 

GRUPLANDIRARAK  İŞLEM  YAPMA:

 

GROUP BY          GRUPLA

 

 

ÖRNEK: Her  bölümdeki ortalama maaş nedir?

 

SELECT  böl_no,AVG (brüt)                          SEÇ böl_no

FROM  personel                                               GELİŞ  personel

GOUP BY böl_no;                                            GRUPLA böl_no;

 

HAVING:

 

HAVING           SAHİP

 

Gruplandırarak  kümeleme fonksiyonunu uygularken koşulda verilebilir.Bu durumda  grup üzerindeki hesaplamalarla ilgili koşul belirtilirken HAVING (SAHİP) sözcüğü kullanılır.

 

ÖRNEK:En yüksek maaşın 9000000’dan fazla olduğu bölümlerdeki personele ait ortalama maaşları listele.

 

SELECT  böl_no,AVG (brüt)                          SEÇ böl_no, ORT(brüt)

FROM personel                                                GELİŞ  personel

GROUP BY böl_no                                          GRUPLA  böl_no

HAVING AVG(brüt)> 9000000;                      SAHİP  ORT(brüt)> 9000000;

HAVING(SAHİP) sözcüğü SELECT(SEÇ) konusunda GROUP BY(GRUPLA) bulunmadığı zaman geçersizdir.HAVING(SAHİP) sözcüğünü izleyen ifade içinde ,SUM(TOPLA), COUNT(*)(SAY),AVG(ORT),MAX(ÜST) yada  MIN(ALT) fonksiyonlarından en az biri bulunmalıdır.

HAVING (SAHİP)  sözcüğü sadece gruplanmış veriler üzerindeki işlemlerde geçerlidir.

WHERE (OLAN) sözcüğü bir tablonun tek tek satırları üzerinde işlem yapan koşullar içinde geçerlidir.

Bazı durumlarda HAVING(SAHİP) ve WHERE(OLAN) sözcükleri ile birlikte SELECT(SEÇ) komutu içinde kullanılabilir.

 

ÖRNEK:Personel tablosu içinde her bölümde erkek personele ait maaşlar için ortalamanın  9000000’dan fazla olduğu  bölümleri listele.

 

SELECT böl_no, AVG (brüt)                          SEÇ böl_no, ORT (brüt)

FROM  personel                                               GELİŞ  personel

WHERE cins= .T.                                             OLAN cins= .D.

GROUP BY böl_no                                          GRUPLA  böl_no

HAVING AVG (brüt) > 9000000;                    SAHİP ORT(brüt) > 9000000;