Koçbey Forum Sayfası
Would you like to react to this message? Create an account in a few clicks or log in to continue.

SQL'de Tablolar Üzerinde İşlem Yapma

Aşağa gitmek

SQL'de Tablolar Üzerinde İşlem Yapma Empty SQL'de Tablolar Üzerinde İşlem Yapma

Mesaj  Mehmet Çarş. Haz. 04, 2008 1:14 pm

Genellikle veri tabanı kayıtları oluştururken bütün bilgİleri 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ında , 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 ‘%Istanbul%’ 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. Iki 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 <200;
Ö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 Iş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 Işlem’ OR meslek_aciklama=‘Muhasebe’)
AND cinsiyet=1
AND sicil_no=per_sicil_no AND aylik_ucret > 200
AND dogum_yeri=‘Ankara’
AND adres LIKE ‘%Sarıyer%’
AND baslama_tarihi > ‘01.01.1989’
AND medeni_hal=0
AND kesinti&gt;100;
Örnek 8: Muhasebe ve Pazarlama bölümü dışında çalışan personeli listelemek istersek;
SELECT ad, soyad FROM personel, meslekler
WHERE personel. meslek_id=meslekler. meslek_id
AND meslek_aciklama<&gt;’Pazarlama’ AND meslek_aciklama<&gt;’Muhasebe’;
Örnek 9: 40 yaşları arasında Izmir 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=‘Izmir’ 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 > 100;
Örnek 11: Evli ve aile yardımı almayan persenol listesi;
SELECT ad, soyad FROM personel, ucretler
WHERE medeni_hal=1 AND aile_yardim=0;
Mehmet
Mehmet

Mesaj Sayısı : 120
Kayıt tarihi : 20/05/08

http://www.kocbey.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz