# SELECT Sorguları ve İleri Seviye Kullanımlar
SQL’de `SELECT` sorguları, veritabanından veri çekmek için en temel ve en sık kullanılan komutlardır. Bu bölümde, `SELECT` sorgularının farklı kullanım senaryolarını ve ipuçlarını inceleyeceğiz.
### 1. **SELECT ile DISTINCT Kullanımı**
`DISTINCT` ifadesi, sorgu sonucunda tekrar eden satırları ortadan kaldırmak için kullanılır. Özellikle benzersiz değerlerin listelenmesi gereken durumlarda kullanışlıdır.
**Örnek Kullanım:**
“`sql
SELECT DISTINCT name, price FROM car;
“`
Bu sorgu, `car` tablosundaki `name` ve `price` sütunlarında benzersiz olan kombinasyonları getirecektir.
### 2. **SELECT ile LIMIT Kullanımı**
`LIMIT` ifadesi, sorgu sonucunda dönen satır sayısını sınırlamak için kullanılır. Özellikle büyük veri setlerinde performansı artırmak için kullanışlıdır.
**Örnek Kullanım:**
“`sql
SELECT * FROM Customers ORDER BY CustomerID LIMIT 3;
“`
Bu sorgu, `Customers` tablosundaki ilk 3 müşteriyi getirecektir. `LIMIT` ile birlikte `ORDER BY` kullanmak, sonuçların sıralı bir şekilde gelmesini sağlar.
**Offset ile Kullanım:**
“`sql
SELECT * FROM Customers ORDER BY CustomerID LIMIT 2, 1;
“`
Bu sorgu, ilk 2 kaydı atlayıp sonraki 1 kaydı getirecektir. `LIMIT offset, count` şeklinde kullanılır.
### 3. **SELECT ile BETWEEN Kullanımı**
`BETWEEN` ifadesi, belirli bir aralıkta bulunan değerleri filtrelemek için kullanılır. Bu, `>=` ve `<=` operatörlerinin birleşimi gibi çalışır.
**Örnek Kullanım:**
“`sql
SELECT * FROM stack WHERE id BETWEEN 2 AND 5;
“`
Bu sorgu, `id` değeri 2 ile 5 arasında olan tüm satırları getirecektir.
**NOT BETWEEN Kullanımı:**
“`sql
SELECT * FROM stack WHERE id NOT BETWEEN 2 AND 5;
“`
Bu sorgu, `id` değeri 2 ile 5 arasında **olmayan** tüm satırları getirecektir.
### 4. **SELECT ile LIKE Kullanımı**
`LIKE` ifadesi, belirli bir desene uyan değerleri filtrelemek için kullanılır. Özellikle metin aramalarında kullanışlıdır.
**Örnek Kullanım:**
“`sql
SELECT * FROM stack WHERE username LIKE ‘%adm%’;
“`
Bu sorgu, `username` sütununda “adm” ifadesini içeren tüm satırları getirecektir.
**Joker Karakterler:**
– `%`: Herhangi bir sayıda karakteri temsil eder.
– `_`: Tek bir karakteri temsil eder.
**Örnek:**
“`sql
SELECT * FROM stack WHERE username LIKE ‘adm_n’;
“`
Bu sorgu, `username` sütununda “adm” ile başlayan ve ardından herhangi bir karakter gelen satırları getirecektir (örneğin, “admin”).
### 5. **SELECT ile CASE veya IF Kullanımı**
`CASE` ve `IF` ifadeleri, sorgu sonuçlarını belirli koşullara göre değiştirmek için kullanılır. Bu, sonuçları daha anlamlı hale getirmek için kullanışlıdır.
**Örnek Kullanım:**
“`sql
SELECT name, percentage,
CASE WHEN percentage >= 35 THEN ‘Pass’ ELSE ‘Fail’ END AS Remark
FROM student;
“`
Bu sorgu, `student` tablosundaki öğrencilerin yüzdelik puanlarına göre “Pass” veya “Fail” olarak bir sonuç dönecektir.
**IF ile Kullanım:**
“`sql
SELECT name, percentage,
IF(percentage >= 35, ‘Pass’, ‘Fail’) AS Remark
FROM student;
“`
Bu sorgu da aynı sonucu `IF` ifadesi ile dönecektir.
### 6. **SELECT ile Tarih Aralığı Kullanımı**
Tarih aralığı kullanarak belirli bir dönemdeki verileri çekmek için `BETWEEN` veya `>=` ve `<` operatörleri kullanılabilir.
**Örnek Kullanım:**
“`sql
SELECT * FROM orders WHERE order_date >= ‘2023-01-01’ AND order_date < ‘2023-02-01’;
“`
Bu sorgu, Ocak 2023 ayındaki tüm siparişleri getirecektir.
### 7. **SELECT ile Alias (AS) Kullanımı**
`AS` ifadesi, sütun veya tablo adlarını geçici olarak değiştirmek için kullanılır. Bu, sorgu sonuçlarını daha okunabilir hale getirir.
**Örnek Kullanım:**
“`sql
SELECT username AS val FROM stack;
“`
Bu sorgu, `username` sütununu `val` olarak yeniden adlandıracaktır.
—
Bu bilgilerle, `SELECT` sorgularını daha etkili bir şekilde kullanabilir ve veritabanından istediğiniz verileri daha kolay bir şekilde çekebilirsiniz. Bir sonraki yazıda, JOIN’ler ve alt sorgular gibi daha gelişmiş SQL konularına değineceğiz.
—