Forum'da ara:
Ara


Yazar Mesaj
Mesaj13.04.2012, 17:46 (UTC)    
Mesaj konusu: SqL Kolon Örneklendirme

SQL'de Tablolar Üzerinde İşlem Yapma

Genellikle veri tabanı kayıları oluştururken bütün bilgileri bir tabloda değilde
birkaç tablo üzerinde tutarız.Bu dataların hem daha

düzenli durmasını hemde gereksiz veri tekrarlarını engellemiş
olur.Şimdi farklı tablolara bölünmüş datalar üzerinde işlem yapmamız
gerekirse ne yapmamız gerekir.Aslında fazla bir şey yapmamız
gerekmez.Tek yapacağımız hangi tabloları kullanacaksak bunları from
cümleceğinde belirtmemizdir.Tabloları belirtirken aralarıda , koymayı
unutmazsak o zaman sorun yok.

Örnek 1 :

Hangi personelin ne kadar maaş aldığını listelemek istersek;

SELECT ad,soyad,aylik_ucret

FROM personel,ucretler

WHERE sicil_no=per_sicil_no

Örnek 2 :

İstanbul'da yaşayan Adana doğumlu personelin maaşlarını listelemek
istersek;

SELECT ad,soyad,aylik_ucret

FROM personel,ucretler

WHERE sicil_no=per_sicil_no AND adres LIKE '%İstanbul%' AND

dogum_yeri = 'Adana'

Örnek 3 :

300 milyondan fazla maaş alan ve 2 nolu meslek grubuna ait personeli
listelemek istersek;

SELECT ad,soyad,aylik_ucret

FROM personel,ucretler

WHERE sicil_no=per_sicil_no AND aylik_ucret>300000000 AND
meslek_id=2

Örnek 4 :

Muhasebe meslek grubuna ait personel listesi;

SELECT ad,soyad

FROM personel,meslekler

WHERE meslek_id=meslek_id AND meslek_aciklama='Muhasebe'

Şimdi buradaki sorgulamımızda bir karışıklık söz konusu olacak.İki tane aynı isimde
meslek_id oldu.Bunu şu şekilde engelleyebiliriz.

Tablolarda aynı isimde iki kolon varsa bu kolanları kullanırken
başlarıda tablo ismini getiririz araya bir nokta koyarak kolon adını
yazarız.

SELECT ad,soyad

FROM personel,meslekler

WHERE personel.meslek_id=meslekler.meslek_id

AND meslek_aciklama='Muhasebe'

Örnek 5 :

Şirketimizde 30 yıldır çalışan ve 200 milyon altında maaş alan
personeli ödüllendirecegiz.

Bunun için nasıl bir sorgulama yapmalıyız.

SELECT ad,soyad

FROM personel,ucretler

WHERE sicil_no=per_sicil_no AND baslama_tarihi < '01.01.1969'

AND aylik_ucret < 200000000

Örnek 6 :

22 yaşından büyük bilgi işlemde çalışan bayan personeli listelemek istersek

(NOT : cinsiyet= 0 : bayan 1 : erkek

medeni_hal= 0 : bekar 1 : evli )

SELECT ad,soyad

FROM personel,meslekler

WHERE personel.meslek_id=meslekler.meslek_id

AND meslek_aciklama='Bilgi İşlem' AND cinsiyet=0

AND dogum_tarihi < '01.01.1977'

Örnek 7 :

40 yaşından küçük ,bilgi işlem veya muhasebe bölümünde
çalışan,erkek,200 milyondan

fazla maaş alan ,Ankara doğumlu ,Sarıyer'de oturan,10 yıldan fazla
şirkette çalışan , bekar,10 milyondan fazla kesinti yapılan personeli listelemek istersek;

SELECT ad,soyad

FROM personel,meslekler,ucretler

WHERE dogum_tarihi > '01.01.1959'

AND personel.meslek_id=meslekler.meslek_id

AND (meslek_aciklama='Bilgi İşlem' OR meslek_aciklama='Muhasebe')

AND cinsiyet=1

AND sicil_no=per_sicil_no AND aylik_ucret > 200000000

AND dogum_yeri='Ankara'

AND adres LIKE '%Sarıyer%'

AND baslama_tarihi > '01.01.1989'

AND medeni_hal=0

AND kesinti>10000000

Örnek 8 :

Muhasebe ve Pazarlama bölümü dışında çalışan perseneli listelemek
istersek;

SELECT ad,soyad

FROM personel,meslekler

WHERE personel.meslek_id=meslekler.meslek_id

AND meslek_aciklama<>'Pazarlama' AND meslek_aciklama<>'Muhasebe'

Örnek 9 :40 yaşları
arasında İzmir ve Bursa doğumlu adayları listelemek istersek;

SELECT ad,soyad

FROM personel

WHERE dogum_tarihi BETWEEN '01.01.1959' AND '01.01.1969'

AND (dogum_yeri='İzmir' OR dogum_yeri='Bursa')

Örnek 10 :

Adı E ile başlayan, 3,5 ve 7 nolu meslek grubuna ait ,bayan,bekar,30
yaşından küçük ,

100 milyondan fazla maaş alan personel listesi ;

SELECT ad,soyad

FROM personel,ucretler

WHERE ad LIKE 'E%'

AND meslek_id IN (3,5,7)

AND cinsiyet=0

AND medeni_hal=0

AND dogum_tarihi > '01.01.1969'

AND sicil_no=per_sicil_no

AND aylik_ücret > 100000000


Örnek 11 :

Evli ve aile yardımı almayan persenol listesi;

SELECT ad,soyad

FROM personel,ucretler

WHERE medeni_hal=1 AND aile_yardim=0
Önceki mesajları göster:   


Powered by phpBB © 2001, 2005 phpBB Group
Türkçe Çeviri: phpBB Türkiye & Erdem Çorapçıoğlu