SQL SELECT Sorguları: Veri Filtreleme ve Sıralama Sanatı - DERSLER - BİLGİ MERKEZİ | Bilginin Merkezi

SQL SELECT Sorguları: Veri Filtreleme ve Sıralama Sanatı - DERSLER - BİLGİ MERKEZİ | Bilginin Merkezi

SQL SELECT Sorguları: Veri Filtreleme ve Sıralama Sanatı


08 Ekim 2025

Veritabanları, modern uygulamaların ve sistemlerin temel taşlarıdır. Büyük miktarda veriyi düzenli bir şekilde saklamak ve yönetmek için kullanılırlar. Bu veriye erişmek, onu analiz etmek ve anlamlı bilgilere dönüştürmek için ise SQL (Structured Query Language - Yapılandırılmış Sorgu Dili) adı verilen özel bir dil kullanılır. SQL'in en temel ve en sık kullanılan komutlarından biri de SELECT sorgusudur. Bu makalede, SELECT sorgularının veri filtreleme ve sıralama özelliklerine odaklanarak, bu güçlü aracın nasıl etkili bir şekilde kullanılabileceğini derinlemesine inceleyeceğiz.

SELECT Sorgusuna Giriş

SELECT sorgusu, bir veritabanı tablosundan belirli sütunlardaki verileri çekmek için kullanılır. En basit haliyle, bir tablodaki tüm sütunları ve satırları seçebilir. Ancak, gücü filtreleme ve sıralama yeteneklerinde yatar. Bu sayede, yalnızca ihtiyacımız olan veriye odaklanabilir ve bu veriyi istediğimiz şekilde düzenleyebiliriz.

Temel SELECT sözdizimi şöyledir:

SELECT sütun1, sütun2, ...FROM tablo_adı;

Burada, sütun1, sütun2, ... seçmek istediğimiz sütunların adlarını temsil eder ve tablo_adı ise verilerin bulunduğu tablonun adıdır. Eğer tüm sütunları seçmek istiyorsak, sütun adları yerine * (yıldız) karakterini kullanabiliriz:

SELECT *FROM tablo_adı;

Veri Filtreleme: WHERE Koşulu

WHERE koşulu, SELECT sorgusunun en önemli parçalarından biridir. Bu koşul, hangi satırların sonuç kümesine dahil edileceğini belirler. Belirli bir koşulu sağlayan satırları filtrelemek için kullanılır. Örneğin, belirli bir fiyattan daha yüksek ürünleri veya belirli bir tarihten sonraki siparişleri seçmek için WHERE koşulunu kullanabiliriz.

WHERE koşulu ile birlikte kullanılabilecek çeşitli operatörler vardır:

  • = (Eşittir): Belirli bir değere eşit olan satırları seçer.
  • <> veya != (Eşit Değildir): Belirli bir değere eşit olmayan satırları seçer.
  • > (Büyüktür): Belirli bir değerden büyük olan satırları seçer.
  • < (Küçüktür): Belirli bir değerden küçük olan satırları seçer.
  • >= (Büyük Eşittir): Belirli bir değerden büyük veya eşit olan satırları seçer.
  • <= (Küçük Eşittir): Belirli bir değerden küçük veya eşit olan satırları seçer.
  • LIKE: Belirli bir kalıba uyan metin değerlerini seçer.
  • BETWEEN: Belirli bir aralıktaki değerleri seçer.
  • IN: Belirli bir listedeki değerlerden herhangi birine sahip olan satırları seçer.
  • IS NULL: Değeri boş (NULL) olan satırları seçer.
  • ¨C22C: Değeri boş olmayan satırları seçer.

Örnekler:

Fiyatı 100 TL'den yüksek olan ürünleri seçme:

SELECT *FROM urunlerWHERE fiyat > 100;

Adı 'A' ile başlayan müşterileri seçme:

SELECT *FROM musterilerWHERE ad LIKE 'A%';

2023-01-01 ile 2023-01-31 tarihleri arasındaki siparişleri seçme:

SELECT *FROM siparislerWHERE siparis_tarihi BETWEEN '2023-01-01' AND '2023-01-31';

ID'si 1, 3 veya 5 olan ürünleri seçme:

SELECT *FROM urunlerWHERE id IN (1, 3, 5);

Mantıksal Operatörler: AND, OR, NOT

WHERE koşulu içerisinde birden fazla koşulu birleştirmek için mantıksal operatörler kullanılır. En yaygın kullanılan mantıksal operatörler şunlardır:

  • AND: Tüm koşulların doğru olması gerekir.
  • OR: Koşullardan en az birinin doğru olması gerekir.
  • NOT: Koşulun tersini alır.

Örnekler:

Fiyatı 100 TL'den yüksek VE stokta 5'ten fazla olan ürünleri seçme:

SELECT *FROM urunlerWHERE fiyat > 100 AND stok_miktari > 5;

Adı 'A' ile başlayan VEYA soyadı 'B' ile başlayan müşterileri seçme:

SELECT *FROM musterilerWHERE ad LIKE 'A%' OR soyad LIKE 'B%';

Fiyatı 100 TL'den yüksek OLMAYAN ürünleri seçme:

SELECT *FROM urunlerWHERE NOT fiyat > 100;

Veri Sıralama: ORDER BY

ORDER BY ifadesi, SELECT sorgusunun sonuçlarını belirli bir sütuna göre sıralamak için kullanılır. Sonuçları artan (ASC) veya azalan (DESC) sırada sıralayabiliriz. Varsayılan olarak, ORDER BY ifadesi sonuçları artan sırada sıralar.

ORDER BY sözdizimi şöyledir:

SELECT sütun1, sütun2, ...FROM tablo_adıORDER BY sütun_adı [ASC | DESC];

Burada, sütun_adı sıralama yapmak istediğimiz sütunun adını temsil eder ve ASC (artan) veya DESC (azalan) sıralama türünü belirtir.

Örnekler:

Ürünleri fiyata göre artan sırada sıralama:

SELECT *FROM urunlerORDER BY fiyat ASC;

Müşterileri soyadına göre azalan sırada sıralama:

SELECT *FROM musterilerORDER BY soyad DESC;

Önce kategoriye göre artan, sonra da fiyata göre azalan sırada ürünleri sıralama:

SELECT *FROM urunlerORDER BY kategori_id ASC, fiyat DESC;

Filtreleme ve Sıralamayı Birleştirme

WHERE koşulu ve ORDER BY ifadesi, SELECT sorgusunda birlikte kullanılabilir. Bu sayede, önce verileri filtreleyebilir ve ardından filtrelenmiş verileri sıralayabiliriz.

Örnek:

Fiyatı 100 TL'den yüksek olan ürünleri fiyata göre azalan sırada sıralama:

SELECT *FROM urunlerWHERE fiyat > 100ORDER BY fiyat DESC;

İpuçları ve En İyi Uygulamalar

  • İndeksleme: Sık kullanılan filtreleme sütunlarında indeks oluşturmak, sorgu performansını önemli ölçüde artırabilir.
  • Veri Türleri: WHERE koşulunda doğru veri türlerini kullanmaya özen gösterin. Örneğin, sayısal bir sütunu metin olarak karşılaştırmak beklenmeyen sonuçlara yol açabilir.
  • Performans: Karmaşık WHERE koşullarından kaçının ve mümkünse sorguları basitleştirin.
  • Sorgu Optimizasyonu: Veritabanı yönetim sisteminin sorgu optimizasyon araçlarını kullanarak sorgu performansını analiz edin ve iyileştirin.
  • LIMIT: Büyük veri kümelerinde, yalnızca ihtiyacınız olan veriyi çekmek için LIMIT ifadesini kullanın. Bu, sorgu performansını artırır ve gereksiz kaynak kullanımını önler.

Sonuç

SELECT sorguları, veritabanlarından veri çekmek, filtrelemek ve sıralamak için güçlü bir araçtır. WHERE koşulu ile verileri filtreleyebilir, ORDER BY ifadesi ile verileri sıralayabilir ve bu iki özelliği birleştirerek karmaşık sorgular oluşturabiliriz. Bu makalede sunulan bilgiler ve örnekler, SELECT sorgularını etkili bir şekilde kullanmanıza ve veritabanlarınızdan en iyi şekilde yararlanmanıza yardımcı olacaktır. Veritabanı yönetim sisteminizin dokümantasyonunu inceleyerek, SELECT sorgularının daha gelişmiş özelliklerini ve optimizasyon tekniklerini öğrenebilirsiniz. Unutmayın, pratik yaparak ve farklı senaryolarda sorgular oluşturarak, SQL becerilerinizi geliştirebilir ve veritabanı yönetiminde uzmanlaşabilirsiniz.


Facebook X