Menü

Sql Sorgu İşlemleri 2

9 Ekim 2017 - SQL
Sql Sorgu İşlemleri 2

Bir önceki dersimizde(Sql Sorgu İşlemleri) değinmediğimiz birkaç terimden bahsedip ve birçok özelliği kullanabileceğimiz örneklerle bu dersimize devam edeceğiz.

Sql sorgu işlemleri basit olduğu gibi çok karmaşık kompleks yapıda da olabilir. Önemli olan yazacağınız sorguyu gözünüzde fazla büyütmeden basit komutları bir araya getirip amacınıza uygun zincirleme sorguyu oluşturmak ve sonuç almak olsun. Diğer programlama dillerinde olduğu gibi burda da sakın hata yapmaktan korkmayın çünkü bizim için hata yapmak gerçekten bazı şeyleri fark etmemizi sağlar. “Hata yapın ama çözümsüz bırakmayın 🙂 ” diyerek dersimize başlamak istiyorum.

Örnek Uygulama

Bir önceki çalışmamızda kullandığımız tablomuzun açalım.

id ad soyad yas adres sehir maas ulke
1 Ferdi Özer 23 1703 sk. Ağrı 2500 Turkey
2 Ana Trujillo 30 Avda. de la Constitución 2222 México D.F. 1500 Mexico
3 Antonio Moreno Mataderos 2312 México D.F. 1500 Mexico
4 Maria Anders 20 Obere Str. 57 Berlin 2000 Germany
5 Christina Berglund 42 Berguvsvägen 8 Luleå 5600 Sweden
AND Öperatörü
SELECT * FROM personel
WHERE ulke='Germany'
AND sehir='Berlin';

SQL cümlesi, ülkesi “Germany” ve şehri “Berlin” olan kayıtlar getirilecek. (4)

SELECT * FROM personel
WHERE ulke='Berlin'
OR sehir='Luleå';

Ülkesi Germany yada şehri Luleå olan kayıtlar getirilecek. (ve 5)

SELECT * FROM personel
WHERE ulke='Germany'
AND (sehir='Berlin' OR sehir='Luleå');

Ülkesi “Germany” ve şehri “Berlin” veya “Luleå” olan kayıtlar. Yani ülke her halükarda “Germany” olacak ve bunu sağlayan şartların şehirlerine bakılır. Bu kayıtların içinden şehri “Berlin” yada “Luleå” olan kayıtlar alınır. (4)

As ifadesi

Sütunları birleştirmek için kullanırız. Veritabandaki sütunları kullanmak yerine bizim belirlediğimiz kelimeye verilerimizi aktarmaya yarar.

Mesela

SELECT ad&' '&soyad as isim FROM personel;

“ad” ve “soyad” alanları farklı sütunlarda çekmek yerine ikisini birleştirip “isim” adlı alanda çekmiş oluruz.

select ad,soyad maas*12 as YıllıkÜcret from personel;

Personel tablosundaki tüm kayıtları getirirken aynı zamanda aylık maaşları 12 ile çarparak yıllık maaş sonucunu “YıllıkÜcret” adlı alanda kişilerin ad, soyad ve yıllık ücretini bize verecektir.

NULL (boş) değerlerle ilgili işlemler

Eğer bir kayıt, bazı alanları boş bırakılarak eklendiyse, matematiksel işlemlerde sorun çıkabilir. (NULL, sıfır değeri ile aynı değildir.)

Null hücrelerini göz ardı etmek için is ifadesi kullanılır

SELECT ad FROM personel WHERE yas IS NULL

Yaş alanına değer atanmayan verilerin ad bilgisini çeker. Çıktı “Antonio” olur. (3)

SELECT * FROM personel WHERE maas IS NOT NULL

Bu ifade sayesinde boş değerler göz önüne alınmaz. Böylece hesap gerektiren sorgularda bu ifadeyi kullanarak hatayı engellemiş oluruz.

ORDER BY

ASC     : Sıralama yukarıdan aşağıya doğru artan sırada olacaksa

DESC  : Sıralama yukarıdan aşağıya doğru azalan sırada olacaksa kullanılır.

Default değer  zaten asc olduğu için bu ifadeyi kullanmasanız da olur ama verileri reverse olarak yani tersten sıralamak istiyorsanız desc ifadesini kullanmalısınız.

SELECT * FROM personel
ORDER BY ulke ASC, sehir DESC;

Yukardaki SQL deyimi “personel” tablosundan “ulke” tarafından artan ve “sehir” sütununa göre azalan tüm müşterileri seçer

NOT, WHERE, ORDER, SELECT, FROM… gibi ifadeler veritabanında alan adı olarak kullanıldığında hataya sebep olacağı için alan adı olarak kullanılmamalıdır. Kriter belirtirken çift tırnak yerine tek da kullanabileceğinizi de hatırlatmak isterim.

Bu seferlik bu kadar. Bugsuz kodlamalı günler 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir