SQL Dilinde SELECT Kullanımı: Detaylı Rehber
Veritabanı yönetim sistemlerinde (DBMS) depolanan verilere erişmek, manipüle etmek ve analiz etmek için kullanılan yapısal sorgu dili olan SQL (Structured Query Language), her veri uzmanı için temel bir araçtır. Bu dilin en temel ve en sık kullanılan komutlarından biri, veritabanından veri çekmek için tasarlanmış olan SELECT ifadesidir. SELECT, belirli sütunları, satırları veya tüm veri kümelerini alarak bir sorgu sonucunu oluşturmanızı sağlar. Bu makale, SELECT ifadesinin sözdizimini, parametrelerini ve pratik kullanım örneklerini detaylı bir şekilde açıklayacaktır.
Temel Sözdizimi
SELECT ifadesinin genel sözdizimi aşağıdaki gibidir:
SELECT [DISTINCT] sütun1, sütun2, ...
FROM tablo_adı
[WHERE koşul]
[GROUP BY sütunlar]
[HAVING koşul]
[ORDER BY sütunlar [ASC|DESC]]
[LIMIT sayı];Yukarıdaki sözdiziminde köşeli parantez [] içine alınmış maddeler isteğe bağlıdır.
Detaylı Açıklama
- 
        
SELECT: Veritabanından hangi sütunların alınacağını belirtmek için kullanılır. Birden fazla sütun virgül ile ayrılır. Tüm sütunları seçmek için*(yıldız) karakteri kullanılır.
 - 
        
DISTINCT(İsteğe Bağlı): Seçilen sütunlardaki yinelenen değerleri kaldırarak yalnızca benzersiz sonuçları döndürür. Eğer bu anahtar kelime kullanılmazsa, tüm eşleşen satırlar döndürülür.
 - 
        
FROM tablo_adı: Verilerin hangi tablodan çekileceğini belirtir. Bu madde zorunludur.
 - 
        
WHERE koşul(İsteğe Bağlı): Belirli bir koşula uyan satırları filtrelemek için kullanılır. Bu koşul,AND,OR,NOTgibi mantıksal operatörler ve karşılaştırma operatörleri (=,<>,>,<,>=,<=) ile oluşturulabilir.
 - 
        
GROUP BY sütunlar(İsteğe Bağlı): Sonuç kümesini bir veya daha fazla sütuna göre gruplamak için kullanılır. GenellikleCOUNT(),SUM(),AVG(),MIN(),MAX()gibi toplama (aggregate) fonksiyonlarıyla birlikte kullanılır.
 - 
        
HAVING koşul(İsteğe Bağlı):GROUP BYifadesiyle gruplanmış satırlara koşul uygulamak için kullanılır.WHERE, tek tek satırları filtrelerken,HAVINGgrupları filtreler.
 - 
        
ORDER BY sütunlar [ASC|DESC](İsteğe Bağlı): Sonuç kümesini bir veya daha fazla sütuna göre sıralamak için kullanılır.ASC(ascending) artan sıralama,DESC(descending) azalan sıralama anlamına gelir. Varsayılan değerASC'dir.
 - 
        
LIMIT sayı(İsteğe Bağlı): Sorgu sonucunda döndürülecek satır sayısını sınırlar. Bu ifade genellikle çok sayıda veri içeren tablolarda performansı artırmak veya yalnızca belirli bir sayıda sonuç almak için kullanılır. SQL Server'da bu işlevsellikTOPanahtar kelimesiyle, Oracle'da iseROWNUMile sağlanır.
 
Pratik Kullanım Örnekleri
Aşağıdaki örneklerde, Müşteriler adında bir tablo ve MüşteriID, Ad, Soyad, Şehir, Yaş, SiparişSayısı sütunları olduğunu varsayalım.
Örnek 1: Tüm Sütunları Seçme
Müşteriler tablosundaki tüm sütunları ve tüm satırları getirir.
SELECT *
FROM Müşteriler;Örnek 2: Belirli Sütunları Seçme
Müşteriler tablosundan yalnızca Ad ve Soyad sütunlarını getirir.
SELECT Ad, Soyad
FROM Müşteriler;Örnek 3: Koşullu Seçim (WHERE Kullanımı)
Yaşı 30'dan büyük olan müşterilerin Ad ve Soyad bilgilerini getirir.
SELECT Ad, Soyad
FROM Müşteriler
WHERE Yaş > 30;Örnek 4: Benzersiz Değerleri Seçme (DISTINCT Kullanımı)
Müşteriler tablosunda bulunan benzersiz şehirleri listeler.
SELECT DISTINCT Şehir
FROM Müşteriler;Örnek 5: Gruplama ve Toplama (GROUP BY ve COUNT Kullanımı)
Her şehirden kaç müşteri olduğunu sayar.
SELECT Şehir, COUNT(MüşteriID) AS MüşteriSayısı
FROM Müşteriler
GROUP BY Şehir;Örnek 6: Gruplandırılmış Veriyi Filtreleme (HAVING Kullanımı)
Sadece 2'den fazla müşterisi olan şehirleri ve müşteri sayılarını listeler.
SELECT Şehir, COUNT(MüşteriID) AS MüşteriSayısı
FROM Müşteriler
GROUP BY Şehir
HAVING COUNT(MüşteriID) > 2;Örnek 7: Sonuçları Sıralama (ORDER BY Kullanımı)
Müşterileri Soyad'a göre azalan (DESC) ve ardından Ad'a göre artan (ASC) sırada listeler.
SELECT Ad, Soyad, Şehir
FROM Müşteriler
ORDER BY Soyad DESC, Ad ASC;Örnek 8: Sonuç Sayısını Sınırlama (LIMIT Kullanımı)
En genç 5 müşteriyi listeler (yaşı en küçük olanlar).
SELECT Ad, Soyad, Yaş
FROM Müşteriler
ORDER BY Yaş ASC
LIMIT 5;İpuçları ve Önemli Notlar
- 
        
Sütunları Belirtin: Performans ve okunabilirlik açısından,
SELECT *yerine her zaman ihtiyacınız olan belirli sütunları belirtmek daha iyidir. Özellikle büyük tablolarda veya çok sütunlu tablolarda bu önemlidir.
 - 
        
Büyük/Küçük Harf Duyarlılığı: Çoğu SQL veritabanı (örneğin MySQL, PostgreSQL) tablo ve sütun adlarında büyük/küçük harf duyarlıdır. SQL Server gibi bazıları (varsayılan olarak) değildir. Kullandığınız veritabanının konfigürasyonunu kontrol edin.
 - 
        
WHEREveHAVINGArasındaki Fark:WHEREifadesi, veritabanından veri çekilmeden önce tek tek satırları filtrelerken,HAVINGifadesi, verilerGROUP BYile gruplandıktan sonra gruplanmış sonuçları filtreler.
 - 
        
İndeks Kullanımı:
WHEREveORDER BYyan tümcelerinde kullanılan sütunlara indeks eklemek, sorgu performansını önemli ölçüde artırabilir.
 - 
        
Veritabanına Özgü Sözdizimi:
LIMITyerineTOP(SQL Server) veyaROWNUM(Oracle) gibi veritabanına özgü anahtar kelimeler olabileceğini unutmayın. Her veritabanı sisteminin kendi küçük sözdizimi farklılıkları olabilir.
 
        
                
            
            
Yorum yap
Yorumlar