İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

BİRDEN FAZLA TABLOYU İLİŞKİLENDİRMEK

JOIN -İLİŞKİLENDİR

ÖRNEK: Personel ve bölüm adlı 2 tablo bulunmaktadır.Çalışan her personel ve personelin yöneticisi ile ilişkili bilgiler nelerdir?
SELECT   *
FROM  personel,bölüm
WHERE personel .böl_no=bölüm.bölüm_no ;

ÖRNEK: JOIN (İLİŞKİLENDİR) işleminde arzu edilen(sicil,ad,soyad,böl_no,yön_s_g_n) alanların listele.
SELECT sicil,ad,soyad,böl_no,yön_s_g_n
FROM  personel,bölüm
WHERE personel .böl_no = bölüm .bölüm_no;

SELF-JOIN: KENDİSİYLE -İLİŞKİLENDİR

TANIM:Bir tablonun kendisi ile birleştirilmesine "KENDİSİYLE-İLİŞKiLENDİR" denir.(SELF-JOIN)

SELECT A. sicil , A.ad , A.soyad,
B .ad , B.soyad , B.dog_tar.soyad, 
FROM  personel A , personel B
WHERE A. yon_sos_g_n =B .sosy_g_no;

NESTED SELECTS:İÇİÇE

TANIM:İç içe geçmiş SELECT(SEÇ)komutlarından oluşur.İçteki. seç komutunun bulduğu sonucu dış takı SEÇ komutumuz işlevini yerine getirmesi için kullanılır.

ÖRNEK:Parça numarası 24 olan parçayı ,projelerde kullanan çalışan personeli listele.
SELECT  *
FROM  personel
WHERE sosy_g_no
IN(SELECT per_s_g_no
		FROM  parça,proje,çalışma
		WHERE pr_no = proj_no AND
	 		proj_no =proj_no AND
	 		par_no =24);

ÖRNEK: Fatih’te oturan personelin çalıştığı projelerin adlarını ve yerlerini listele.
SELECT   proj_ad,yer
FROM  proje
WHERE  proj_no  IN
         (SELECT  proje_no
         FROM  personel,çalışma per_s_g_no
         WHERE  sosy_g_no = per_s_g_no
         AND adres LIKE "% fatih %");

UNION SÖZCÜĞÜ:

UNION -BİRLEŞİM

TANIM:İki ayrı SEÇ komutunun sonucunda elde edilen tabloların birleşimi işlemini gerçekleştirir.

ÖRNEK: Fatih’te oturan personelin çalıştığı projelerin adlarını ve yerlerini listele.
(SELECT proj_ad,yer
FROM proj,bölüm,personel
WHERE  bl_no=bölüm_no AND
y_sos gno = sosy_g_no
AND ad ="Ahmet"AND soyad ="Caner")
UNION (SELECT proj_ad,yer
FROM proje,çalışma,personel
WHERE proj_no = proje_no AND
Per_s_g_no = sosy_g_no AND ad ="Ahmet"
AND soyad ="Caner")

KOŞULLAR:

UNION (BİRLEŞİM) sözcüğü ile ,iki yada daha çok kişi SELECT (SEÇ)'in sonucu olan tabloların küme birleşimi işlemine tabi tutulması için 2 koşul gereklidir.

ANY :HER HANGİ BİRİ

ÖRNEK:Satış bölümünde çalışan personelin her hangi birinden daha düşük maaş alan ve mühendislik bölümündeki kişileri listele.
SELECT  *
FROM personel
WHERE  brüt < ANY
(SELECT brüt
FROM personel
WHERE böl_no = 2)  AND
böl_no =1;

EŞ DEĞERİ İFADE:

SELECT  *
FROM  personel
WHERE brüt  <  (SELECT MAX (brüt )
FROM personel
WHERE böl_no = 2) AND  böl_no =1;

ALL:HEPSİ

ÖRNEK:Satış bölümünde çalışan ve mühendislik bölümündeki personelin hepsinden daha fazla maaş alan personeli listele.Bu örnekte satış bölümü kodu = 2 ve mühendislik bölümü kodu = 1 alınmıştır.
1)
SELECT  *
   FROM   personel
   WHERE brüt >
   ALL (SELECT  brüt
   FROM  personel
   WHERE böl_no = 1)
   AND böl_no = 2;
2)
SELECT   *
   FROM   personel
   WHERE brüt  >
   (SELECT  MAX  (brüt)
   FROM  personel
   WHERE böl_no = 1)
   AND böl_no =2;

VE ,VEYA ,DEĞİL operatörleri ile kullanılabilir.

ÖRNEK: 27 no’lu parçayı satan satıcılarla ilişkili tüm bilgileri listele.
SELECT  *
FROM  satıcı
WHERE   EXISTS
   (SELECT  *
   FROM  par_sat
   WHERE  sat_no = satıcı_n
   AND  parça_n =27);

NOT EXISTS: MEVCUT DEĞİL

VE ,VEYA ,DEĞİL operatörleri ile kullanılabilir.

ÖRNEK: 27 no’lu parçayı satmayan satıcılar kimlerdir?
SELECT  *
FROM  satıcı
WHERE  NOT  EXISTS
   (SELECT  *
   FROM  par_sat
   WHERE  sat_no = satıcı_n
   AND  parça_n =27);

EXCEPT:FARKLI

Tablo-1 - Tablo-2 işlemi sonuç(iki kümenin farkı) elde edilecek tabloda,Tablo-1'de bulunup, Tablo-2'de bulunmayan veriler mevcut olacaktır.

ÖRNEK:Satış bölümündeki personel adlarından,mühendislik bölümünde bulunmayanları listele.
SELECT  *     FROM
(SELECT   ad FROM  personel
WHERE bol_no=1
EXCEPT
SELECT ad FROM  personel
WHERE bol_no =2);

INTERSECT:

ÖRNEK: Hem Ankara’da,hem de İstanbul’daki projelerde görev alan bölümleri listele.
SELECT  *  FROM
(SELECT  bl_no FROM  proje
WHERE yer LIKE "%Ankara%"
INTERSECT
SELECT bl_no FROM  proje
WHERE yer LIKE "%İstanbul%");

SAVE TO TEMP:

ÖRNEK: Bayan personeli,bayan adlı bir tablo içinde sakla.
SELECT  *
FROM  personel
WHERE cins =.F. SAVE TO TEMP bayan;

KEEP:KALICI

SELECT  *
FROM  personel
WHERE cins = .F.
SAVE TO TEMP bayan KEEP;

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır