22 Haziran 2015 Pazartesi

Temel SQL Dersi 5: AND & OR Elemanları 2






AND & OR Elemanları 2

Farklı AND ve OR sorguları aşağıdaki tablo için yazacağız.
Personel Tablosu
per_noisimsoyisimyascinsiyetkentulkemaas
1AhmetYılmaz20EAnkaraTürkiye2000
2MehmetEfe22EBoluTürkiye1800
3AyşeCan23KİstanbulTürkiye2500
4FatmaAk35KAnkaraTürkiye2800
5JohnSmith45ENew YorkABD3500
6EllenSmith40KNew YorkABD3000
7HansMüller30EBerlinAlmanya4000
8FrankCesanne35EParisFransa3700
9AbbasDemir26EAdanaTürkiye1500
10HaticeYılmaz26KİstanbulTürkiye3000


1- Adı Ahmet ve Mehmet olanlar:
 SELECT * FROM personel WHERE isim= 'Ahmet' AND isim= 'Mehmet'
Bu sorgunun sonucu boş kümedir. Zira adı aynı zamanda hem Ahmet hem Mehmet olan kayıt yoktur. Bu örneği vermemin nedeni Adı Ahmet ve Mehmet olanlarifadesinin normalde Ahmetler ve Mehmetler şeklinde anlaşılması. Ancak SQL’de işleçlerin (operatörlerin) anlamları nettir. Sorguyu aşağıdaki gibi değiştirelim:
 SELECT * FROM personel WHERE isim='Ahmet' OR isim='Mehmet'
Değiştirmiş olduğumuz sorgunun Türkçesi adı ‘Ahmet’ veya adı ‘Mehmet’ olanlar şeklinde ifade edilir. Bu sorgunun sonucu aşağıdaki gibidir:
per_noisimsoyisimyascinsiyetkentulkemaas
1AhmetYılmaz20EAnkaraTürkiye2000
2MehmetEfe22EBoluTürkiye1800


2- Yaşı 30’dan büyük ve erkek veya yaşı 25’ten küçük ve kadın olanlar:
 SELECT * FROM personel WHERE ( yas > 30 AND cinsiyet= 'E' ) OR ( yas < 25 AND cinsiyet= 'K' )
Sorgudaki parantezlere ve sorgunun aşağıdaki sonucuna dikkat:
per_noisimsoyisimyascinsiyetkentulkemaas
3AyşeCan23KİstanbulTürkiye2500
5JohnSmith45ENew YorkABD3500
8FrankCesanne35EParisFransa3700


3- Yaşı 30’dan büyük veya Ankara’da oturan ve maaşı 2500’den büyük veya kadın olanlar:
 SELECT * FROM personel WHERE ( yas > 30 OR kent= 'Ankara' ) AND ( maas > 2500 OR cinsiyet= 'K' )
Yukarıdaki 2 parantezin her birindeki 2 sorgudan en az birine uyan kayıtlar bu sorgunun sonucunu oluşturur. Örneğin ilk parantezdeki yaş koşulu tutan yani yaşı 30’dan büyük olan bir kayıtın ikinci parantezden de en az bir koşula uyması gerekiyor ki aşağıda yer alabilsin.
Aşağıdaki sonuç kümesini incelediğinizde yukarıdaki sorguyu daha iyi anlayacaksınız:
per_noisimsoyisimyascinsiyetkentulkemaas
4FatmaAk35KAnkaraTürkiye2800
5JohnSmith45ENew YorkABD3500
6EllenSmith40KNew YorkABD3000
8FrankCesanne35EParisFransa3700

Hiç yorum yok:

Yorum Gönder