Merhaba Arkadaşlar,
Phphocasi.com.tr sitesi üzerinden SQL Dersleri ‘ne devam ediyoruz. Bu derste SQL AND, OR ve NOT Operatörleri konularını işleyeceğiz. Bir önceki derslerimizde tablolar üzerinde select ile sorgu işlemleri yapmıştık. Bu derste ise mantıksal sorgu sorgu işlemlerini birlikte göreceğiz.
SQL AND, OR ve NOT Operatörleri
Bir tablo üzerinde birden fazla koşullu durumlar için kullanılan mantıksal SQL sorgu komutları dır. Hemen daha önce oluşturmuş olduğumuz yazarlar isimli tablomuza bakalım.
Örneğin Taha Kırca isimli yazarın birden fazla farklı yazısı var hemen görelim;
SELECT *FROM yazarlar WHERE yazar_isim ="Taha"
Görüldüğü gibi aynı yazar 3 farklı yazı serisi yazmış.
AND Operatörü
Biz burada hem yazar adı Taha olan yazarı hem de yazdığı ders sayısı 30’dan büyük bilgileri olan satırı çekmek istiyoruz. Yani birden fazla koşulu sağlayan satırları elde etmek istiyoruz bunun için AND operatörünü kullanıyoruz.
Burada koşulun sağlanması durumuna “1” sağlanmadığı duruma “0” dersek sadece iki koşulunda sağlandığı durumda sonucumuz sağlanmış olacak diğer durumlarda sonucumuz 0 yani sağlanmıyor olacak. Yani sonuç sağlanması için tüm durumların sağlanması gerekiyor.
KOSUL 1 | KOŞUL 2 | SONUÇ |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
SELECT *FROM yazarlar WHERE yazar_isim = "Taha" AND ders_sayisi >30
Bu koşulları sağlayan iki satır elde etmiş olduk.
Not: Burada dikkat etmeniz gereken başka bir nokta karakterlerden oluşan sütunlar için tırnak işareti içinde yazıyoruz.
OR Operatörü
Az önce aynı anda iki farklı koşulu sağlayan verileri çektik. Şimdi iki koşuldan birisini sağlayan verileri yanı satırları çekelim bunun için SQL sorguları için OR operatörünü kullanıyoruz ; Burada yine aynı şekilde iki koşul olduğunu var sayarsak iki koşulun sadece sağlanmadığı durumlarda sonuç sağlanmıyor diğer tüm durumlarda sonuç sağlanıyor. Yani en az bir koşulun sağlaması gerekiyor.
KOSUL 1 | KOŞUL 2 | SONUÇ |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Şimdi tablo üzerinde yazar adı Taha veya ders sayısı 20 ve 20’dan büyük verileri çekelim.
SELECT *FROM yazarlar WHERE yazar_isim = "Taha" OR ders_sayisi >=20
Gördüğünüz gibi yazar adı Taha olan veya ders sayısı 20 den büyük olan yazarları listelemiş olduk.
NOT Operatörü
Belirtilen ifadenin dışında ki tüm verileri çekmek için kullanılır. Yani koşulun tersi durumlarda sonuç sağlanmış oluyor. Hemen tablomuzu görelim.
Örneğin yazar ismi cahit olmayan tüm yazarları çekelim.
SELECT *FROM yazarlar WHERE NOT yazar_isim="Cahit"
Gördüğünüz yazar ismi Cahit dışında olan tüm yazarlar için bir tablo elde etmiş olduk.
Şimdi biraz daha karmaşık sorgular için örnekler yapalım.
Örneğin adı Taha yazdığı ders java ve dersin yazı sayısı 30’dan büyük olan yazıları çekelim;
SELECT * FROM yazarlar WHERE (yazar_isim= "Taha") AND (yazar_ders= "JAVA") AND (ders_sayisi >30)
Başka bir örnek daha yapalım;
Yazar ismi “Taha” ve “Alper” olan veya ders sayısı 30’dan büyük ve 100’den küçük olanları alalım.
SELECT * FROM yazarlar WHERE (yazar_isim= "Taha" AND yazar_isim = "Alper") OR (ders_sayisi >30 AND ders_sayisi <100)
Son bir örnekle dersi bitirelim.
Yazar ismi “Taha” olmayan ve ders sayısı 20’den küçük veya 80’den büyük satırları alalım.
SELECT * FROM yazarlar WHERE NOT (yazar_isim= "Taha") AND (ders_sayisi <20 OR ders_sayisi >80)
Phphocasi.com.tr da SQL Dersleri eğitim serisinde bir yazının daha sonuna geldik.Bu dersimizde SQL AND, OR ve NOT sorgu komutlarını işledik. Bir sonraki derste SQL LIKE ve AND Komutlarını dersini işleyeceğim. Eksik yada yanlış gördüğünüz bir yer varsa SORU- CEVAP kısmından veya dersin altındaki yorum kısmında veya iletişim bilgilerimden bana ulaşabilirsiniz bir sonraki derste görüşmek üzere.
19