Sql Komutları

Dıstınct, ın, not ın, ınselect..., any, all, exısts, not exısts, unıon, except, between
DISTINCT(Farklı) Fonksiyonu:
Tablodaki seçilen fieldlerden bir adet seçer. Aynı değeri taşıyan diğer kayıtları eler.

Soru: Satış Tablosunda kaç farklı tarih te satış yapılmıştır?
Cevap: "Select DISTINCT (Tarih) from Satislar"

Count fonksiyonu DISTINCT ile birlikte kullanılabilir. Mesela.
Soru: Personel Tablosunda personellerin kaç farklı departmanda çalışmaktadır?
Cevap: "Select Count(DISTINCT depart) from personel"

IN:
Koşul belirtirken kullanırız. Mesela ismi AHMET, ALİ veya MUSTAFA olan işçilerin bilgilerini listelemek için

SELECT *
FROM ISCI
WHERE ISCI_ADI=’AHMET’ OR ISCI_ADI=’ALİ’ OR ISCI_ADI=’MUSTAFA’

şeklinde bir ifade kullanırız. Bunun yerine

SELECT *
FROM ISCI
WHERE ISCI_ADI IN (’AHMET’ ,’ALİ’ ,’MUSTAFA’)

ifadesini de kullanabiliriz. Yani listenin içindeki herhangi bir değerin bulunması kayıtın seçilmesi için yeterlidir.

NOT IN:
Soru: Personel Tablosunda bölüm kodu 3 ve 4 dışında ki personelleri listeleyin?
Cevap: "Select * from personel where bolum_kodu NOT IN(5,6,9)

BETWEEN:
BETWEEN ifadesini Where ile beraber kullanarak belli bir değer aralığındaki kayıtları getirebiliriz.
Soru: Ürün tablosunda Satış fiyatı 10000 ile 23000 arasında olan ürünleri listeleyin?
Cevap: "Select * from urun where S_Fiyat BETWEEN 10000 and 23000"

NOT BETWEEN:

Between ile belirtilen aralık dışında kalan verileri almak için NOT BETWEEN kullanılabilir.
Soru: Ürün tablosunda Satış departmanı 2 ile 6 arasında olmayan ürünleri listeleyin?
Cevap: "Select * from urun where depart NOT BETWEEN 2 and 6"

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;

Aynı ifade aşağıdaki gibi yazılabilir:

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.

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

Aynı ifade aşağıdaki gibi yazılabilir:

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

EXISTS (MEVCUT):
Ö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):
Ö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 farki) elde edilecek tabloda,Tablo-1’de bulunup, Tablo-2’de bulunmayan veriler mevcut olacaktir.
Ö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);

UNION (BİRLEŞİM):
TANIM: İki ayrı SEÇ komutunun sonucunda elde edilen tabloların birleşimi işlemini gerçekleştirir.

ÖRNEK:
Adı Ahmet ve Soyadı Caner olan kişi yada kişileri işletmenin yürüttüğü projelerde çalışan bir kişi (sıradan bir personel yada bölüm yöneticisi)olarak bulunduran projelerin isimlerini ve projelerin yürütüldüğü yerleri 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 ’in sonucu olan tabloların küme birleşimi işlemine tabi tutulması için 2 koşul gereklidir.
1) SELECT komutları sonucunda elde edilecek tablolar aynı sayıda kolon içermelidirler.
2)Sonuç tabloları karşılıklı olarak kolonların aynı veri tipi ve aynı genişlikte olmalıdır.

Düzenleyen:Burak Kaya
Kaynak:SQL PDF & www.sorucevap.com
Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...