Başlık gözünüzü korkutmasın. Bir önceki yazıda AND ve OR işleçlerinin (operatör) kullanımına genel olarak değinmiştik ama AND ve OR kavramlarının daha iyi anlaşılması için farklı sorgu örnekleri vermek istedim. Sorguları aşağıdaki tablo için yazacağız.
Not: Bu arada diğer SQL derslerine buradan ulaşabilirsiniz
Personel Tablosu
per_no | isim | soyisim | yas | cinsiyet | kent | ulke | maas |
---|---|---|---|---|---|---|---|
1 | Ahmet | Yılmaz | 20 | E | Ankara | Türkiye | 2000 |
2 | Mehmet | Efe | 22 | E | Bolu | Türkiye | 1800 |
3 | Ayşe | Can | 23 | K | İstanbul | Türkiye | 2500 |
4 | Fatma | Ak | 35 | K | Ankara | Türkiye | 2800 |
5 | John | Smith | 45 | E | New York | ABD | 3500 |
6 | Ellen | Smith | 40 | K | New York | ABD | 3000 |
7 | Hans | Müller | 30 | E | Berlin | Almanya | 4000 |
8 | Frank | Cesanne | 35 | E | Paris | Fransa | 3700 |
9 | Abbas | Demir | 26 | E | Adana | Türkiye | 1500 |
10 | Hatice | Yılmaz | 26 | K | İstanbul | Türkiye | 3000 |
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 olanlar ifadesinin 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_no | isim | soyisim | yas | cinsiyet | kent | ulke | maas |
---|---|---|---|---|---|---|---|
1 | Ahmet | Yılmaz | 20 | E | Ankara | Türkiye | 2000 |
2 | Mehmet | Efe | 22 | E | Bolu | Türkiye | 1800 |
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_no | isim | soyisim | yas | cinsiyet | kent | ulke | maas |
---|---|---|---|---|---|---|---|
3 | Ayşe | Can | 23 | K | İstanbul | Türkiye | 2500 |
5 | John | Smith | 45 | E | New York | ABD | 3500 |
8 | Frank | Cesanne | 35 | E | Paris | Fransa | 3700 |
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_no | isim | soyisim | yas | cinsiyet | kent | ulke | maas |
---|---|---|---|---|---|---|---|
4 | Fatma | Ak | 35 | K | Ankara | Türkiye | 2800 |
5 | John | Smith | 45 | E | New York | ABD | 3500 |
6 | Ellen | Smith | 40 | K | New York | ABD | 3000 |
8 | Frank | Cesanne | 35 | E | Paris | Fransa | 3700 |
Herkese Kolay Gelsin
16 Temmuz 2013 at 02:11
Başlığa aldanmamak lazım . Hocamın dediği gibi basitmiş 🙂
22 Ekim 2013 at 03:26
tablo adını nasıl sorgularız ?
01 Kasım 2013 at 07:52
MySQL’de aşağıdaki sorgu tüm tabloları getirir sanırım: select * from information_schema.tables
Bir de veritabanı seçili ise
SHOW TABLES; Ya da SHOW TABLES IN veritabanı_adı;
22 Şubat 2014 at 18:15
güzel calisma
07 Haziran 2016 at 20:44
emeğinize sağlık
07 Haziran 2016 at 20:44
emeğinize sağlık.