SQL Notları: SELECT Sorguları ve İleri Seviye Kullanımlar

# 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.