Bu yazıda, SQL (Structured Query Language) sorgu örnekleri ile veritabanı işlemlerini pratiğe dökmeyi amaçlıyoruz. SQL, veritabanı yönetim sistemleriyle etkileşim kurmamızı sağlayan güçlü bir dildir ve verilerin sorgulanması, ekleme, güncelleme veya silinmesi gibi işlemleri gerçekleştirmemize yardımcı olur. Yazımızda farklı senaryolara uygun SQL örnekleri ve SQL sorgu örnekleri vereceğiz.
Başlamadan önce burada göreceğiniz örnekler için konu anlatımlarımızın olduğu “SQL Dersleri” adlı kategorimizi ziyaret edebilirsiniz.
SQL sorgu örnekleri için kullanacağımız örnek tablomuz. Tüm örnekler için bu tabloyu kullanacağız.
musterino | ad | soyad | sehir | cinsiyet | puan |
---|---|---|---|---|---|
11 | Emre | Öztürk | İstanbul | E | 78 |
12 | Aylin | Kaya | Ankara | K | 55 |
13 | Can | Aksoy | İzmir | E | 67 |
14 | Sevim | Şahin | Bursa | K | 41 |
15 | Murat | Demir | Antalya | E | 92 |
SQL Örnek Soru ve Cevapları
1. SELECT Komutu Örneği
Soru: Musterino, ad ve puan sütunlarını içeren tüm verileri seçin.
SELECT musterno, ad, puan FROM musteriler;
Çıktı :
| musterno | ad | puan |
|----------|--------|------|
| 11 | Emre | 78 |
| 12 | Aylin | 55 |
| 13 | Can | 67 |
| 14 | Sevim | 41 |
| 15 | Murat | 92 |
2. DISTINCT Komutu Örneği
Soru: Şehir sütununda tekrarlanan şehir isimlerini tekrarsız bir şekilde listele.
SELECT DISTINCT sehir FROM musteriler;
Çıktı :
| sehir |
|----------|
| İstanbul |
| Ankara |
| İzmir |
| Bursa |
| Antalya |
3. WHERE Komutu Örneği
Soru: Puanı 60’tan büyük olan erkek müşterileri seçin.
SELECT * FROM musteriler WHERE cinsiyet = 'E' AND puan > 60;
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|-------|--------|---------|----------|------|
| 11 | Emre | Öztürk | İstanbul| E | 78 |
| 13 | Can | Aksoy | İzmir | E | 67 |
| 15 | Murat | Demir | Antalya | E | 92 |
4. AND ve OR Operatörleri Örneği
Soru: Ankara veya İstanbul’da yaşayan ve puanı 50’nin altında veya 80’in üstünde olan müşterileri seçin.
SELECT * FROM musteriler WHERE (sehir = 'Ankara' OR sehir = 'İstanbul') AND (puan < 50 OR puan > 80);
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|-------|---------|----------|------|
| 12 | Aylin | Kaya | Ankara | K | 55 |
| 14 | Sevim | Şahin | Bursa | K | 41 |
| 15 | Murat | Demir | Antalya | E | 92 |
5. ORDER BY Komutu Örneği
Soru: Puanları yüksekten düşüğe sıralanmış şekilde tüm verileri seçin.
SELECT * FROM musteriler ORDER BY puan DESC;
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|--------|---------|----------|------|
| 15 | Murat | Demir | Antalya | E | 92 |
| 11 | Emre | Öztürk | İstanbul| E | 78 |
| 13 | Can | Aksoy | İzmir | E | 67 |
| 12 | Aylin | Kaya | Ankara | K | 55 |
| 14 | Sevim | Şahin | Bursa | K | 41 |
6. TOP ve LIMIT Komutları Örneği
Soru: En yüksek puanlı 2 müşteriyi seçin.
-- SQL Server (TOP)
SELECT TOP 2 * FROM musteriler ORDER BY puan DESC;
-- MySQL (LIMIT)
SELECT * FROM musteriler ORDER BY puan DESC LIMIT 2;
Bu sorgu, en yüksek puanlı 2 müşteriyi seçer. SQL Server için TOP
kullanılırken, MySQL için LIMIT
kullanılır.
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|--------|---------|----------|------|
| 15 | Murat | Demir | Antalya | E | 92 |
| 11 | Emre | Öztürk | İstanbul| E | 78 |
7. LIKE Komutu Örneği
Soru: Adı “A” harfi ile başlayan müşterileri seçin..
SELECT * FROM musteriler WHERE ad LIKE 'A%';
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|-------|-------|--------|----------|------|
| 12 | Aylin | Kaya | Ankara | K | 55 |
8. IN Komutu Örneği
Soru: İstanbul, Ankara ve İzmir’de yaşayan müşterileri seçin.
SELECT * FROM musteriler WHERE sehir IN ('İstanbul', 'Ankara', 'İzmir');
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|-------|-------|---------|----------|------|
| 11 | Emre | Öztürk | İstanbul| E | 78 |
| 12 | Aylin | Kaya | Ankara | K | 55 |
| 13 | Can | Aksoy | İzmir | E | 67 |
9. BETWEEN Komutu Örneği
Soru: Puanı 50 ile 70 arasında olan müşterileri seçin.
SELECT * FROM musteriler WHERE puan BETWEEN 50 AND 70;
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|-------|---------|----------|------|
| 12 | Aylin | Kaya | Ankara | K | 55 |
| 13 | Can | Aksoy | İzmir | E | 67 |
10. AS Operatörü Örneği
Soru: Müşteri adlarını büyük harfle ve “ADI” olarak listele.
SELECT ad AS ADI FROM musteriler;
Çıktı :
| ADI |
|-------|
| EMRE |
| AYLIN |
| CAN |
| SEVIM |
| MURAT |
11. Sorguda JOIN Kullanımı Örneği
Soru: Şehir bilgilerini içeren başka bir tablo ile müşteri şehirlerini eşleştirin.
SELECT m.*, s.sehir_adi
FROM musteriler m
JOIN sehirler s ON m.sehir = s.sehir_kodu;
Bu sorgu, “musteriler” ve “sehirler” tablolarını “sehir” sütununa göre birleştirerek müşteri şehirlerini ve şehir adlarını içeren sonuçları döndürür.
Çıktı :
| musterno | ad | soyad | sehir | cinsiyet | puan | sehir_adi |
|----------|--------|--------|---------|----------|------|-----------|
| 11 | Emre | Öztürk | İstanbul| E | 78 | Istanbul |
| 12 | Aylin | Kaya | Ankara | K | 55 | Ankara |
| 13 | Can | Aksoy | İzmir | E | 67 | Izmir |
| 14 | Sevim | Şahin | Bursa | K | 41 | Bursa |
| 15 | Murat | Demir | Antalya | E | 92 | Antalya |
12. GROUP BY Komutu Örneği
Soru: Şehirlerde kaçar tane müşteri olduğunu bulun.
SELECT sehir, COUNT(*) AS müsteri_sayisi
FROM musteriler
GROUP BY sehir;
Çıktı :
| sehir | müsteri_sayisi |
|----------|----------------|
| İstanbul | 1 |
| Ankara | 1 |
| İzmir | 1 |
| Bursa | 1 |
| Antalya | 1 |
13. UPDATE Komutu Örneği
Soru: Puanı 60’tan düşük olan müşterilerin puanını 60 olarak güncelleyin.
UPDATE musteriler
SET puan = 60
WHERE puan < 60;
Çıktı : (Güncelleme sonrası tablo)
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|--------|---------|----------|------|
| 11 | Emre | Öztürk | İstanbul| E | 78 |
| 12 | Aylin | Kaya | Ankara | K | 60 |
| 13 | Can | Aksoy | İzmir | E | 67 |
| 14 | Sevim | Şahin | Bursa | K | 60 |
| 15 | Murat | Demir | Antalya | E | 92 |
14. DELETE Komutu Örneği
Soru: Puanı 50’nin altında olan müşterileri tablodan silin.
DELETE FROM musteriler
WHERE puan < 50;
Çıktı : (Silme sonrası tablo)
| musterno | ad | soyad | sehir | cinsiyet | puan |
|----------|--------|--------|---------|----------|------|
| 11 | Emre | Öztürk | İstanbul| E | 78 |
| 13 | Can | Aksoy | İzmir | E | 67 |
| 15 | Murat | Demir | Antalya | E | 92 |
Bu yazıda, SQL sorgu örneklerini farklı senaryolar üzerinden ele aldık ve her bir sorgunun ne amaçla kullanıldığını, nasıl çalıştığını detaylı bir şekilde gördük. Umarım bu yazı, SQL konusundaki temel sorgu örneklerini anlamanıza ve uygulamanıza yardımcı olmuştur.