1. SQL Nedir?

SQL (Structured Query Language), veritabanları ile iletişim kurmak için kullanılan bir sorgulama dilidir. Veri ekleme, güncelleme, silme, çekme gibi işlemleri yapmak için kullanılır. SQL, ilişkisel veritabanlarını (RDBMS) yönetmek ve analiz etmek için en yaygın kullanılan dillerden biridir.
SQL’in Avantajları
- Veri yönetimi: Büyük veri kümelerini düzenlemek ve yönetmek için idealdir.
- Hızlı sorgulama: Verileri hızlıca çekmek ve analiz etmek için optimize edilmiştir.
- Standartlaştırılmış dil: MySQL, PostgreSQL, SQL Server gibi birçok sistemde kullanılır.
- İleri düzey veri analizi: Karmaşık sorgular, veri modelleme ve analitik işlemler için uygundur.
- Güvenilirlik: Veri bütünlüğünü korumak için güçlü doğrulama mekanizmaları sağlar.
2. SQL’in Temel Komutları
SQL’de en sık kullanılan temel sorgu komutları şunlardır:
2.1 SELECT – Veri Çekme
Belirli bir tablodan veri almak için kullanılır.
SELECT * FROM calisanlar;
Belirli sütunları almak için:
SELECT isim, maas FROM calisanlar;
2.2 WHERE – Koşullu Filtreleme
Belirli bir koşula göre veri filtrelemek için kullanılır.
SELECT * FROM calisanlar WHERE maas > 5000;
2.3 ORDER BY – Sıralama
Verileri belirli bir sütuna göre sıralamak için kullanılır.
SELECT * FROM calisanlar ORDER BY maas DESC;
2.4 INSERT – Yeni Veri Ekleme
Yeni kayıt eklemek için kullanılır.
INSERT INTO calisanlar (isim, departman, maas) VALUES ('Ali Yılmaz', 'IT', 7000);
2.5 UPDATE – Veri Güncelleme
Var olan kayıtları güncellemek için kullanılır.
UPDATE calisanlar SET maas = 8000 WHERE isim = 'Ali Yılmaz';
2.6 DELETE – Veri Silme
Belirli bir kaydı silmek için kullanılır.
DELETE FROM calisanlar WHERE isim = 'Ali Yılmaz';
3. SQL ile Veri Modelleme
Verileri daha verimli yönetmek için tablolar arasındaki ilişkileri tanımlamak önemlidir.
3.1 JOIN – Tabloları Birleştirme
İki veya daha fazla tabloyu ilişkilendirmek için kullanılır.
SELECT calisanlar.isim, departmanlar.departman_adi
FROM calisanlar
JOIN departmanlar ON calisanlar.departman_id = departmanlar.id;
3.2 GROUP BY – Gruplama ve Özetleme
Belirli bir kritere göre verileri gruplamak için kullanılır.
SELECT departman, AVG(maas) AS ortalama_maas
FROM calisanlar
GROUP BY departman;
3.3 HAVING – Gruplanmış Verilere Koşul Uygulama
Filtrelenmiş gruplarla çalışmak için kullanılır.
SELECT departman, COUNT(*) AS calisan_sayisi
FROM calisanlar
GROUP BY departman
HAVING COUNT(*) > 10;
4. SQL Performans Optimizasyonu
Büyük veri setleriyle çalışırken performansı artırmak için aşağıdaki yöntemler kullanılabilir:
- INDEX Kullanımı: Sorguların hızlanması için anahtar sütunlara index ekleyin.
- LIMIT Kullanımı: Büyük sorgular yerine sadece ihtiyacınız olan veriyi çekin.
- EXPLAIN ile Sorgu Analizi: Sorguların çalışma planını görmek için
EXPLAINkullanın. - View Kullanımı: Sık kullanılan sorguları hızlandırmak için
VIEWoluşturabilirsiniz. - Stored Procedures ve Functions: Karmaşık sorguları saklamak ve çağırmak için kullanılır.
5. SQL’de İleri Seviye Konular
5.1 Alt Sorgular (Subqueries)
Bir sorgunun içinde başka bir sorgu kullanarak karmaşık veri analizleri yapmak mümkündür.
SELECT isim, maas FROM calisanlar
WHERE maas > (SELECT AVG(maas) FROM calisanlar);
5.2 Window Functions
Satır bazlı analizler yapmak için kullanılır.
SELECT isim, departman, maas,
RANK() OVER (PARTITION BY departman ORDER BY maas DESC) AS siralama
FROM calisanlar;
5.3 Normalizasyon ve Denormalizasyon
Veri modellemede normalizasyon, veri tekrarlanmasını önlemek için kullanılırken denormalizasyon, performansı artırmak için belirli veri fazlalıklarına izin verir.
6. Örnek SQL Projesi: Çalışan Performans Analizi
📌 Proje Konusu: Bir şirkette çalışanların maaşlarını ve departman bazında dağılımlarını analiz eden bir SQL raporu.
🔹 Veri Kaynağı: Çalışanlar ve Departmanlar tabloları (MySQL, PostgreSQL veya SQL Server kullanılabilir)
🔹 Adımlar:
- Çalışanlar Tablosunu Oluştur: Çalışanların temel bilgilerini içeren tablo oluşturulur.
- Departmanlar Tablosunu Oluştur: Çalışanların hangi departmana ait olduğunu belirleyen tablo eklenir.
- Çalışan Maaşlarını Analiz Et: Departman bazında ortalama maaş hesaplanır.
- Performans Optimizasyonu Uygula: Verileri daha hızlı analiz etmek için index eklenir.
SQL, veri analizi ve yönetimi için vazgeçilmez bir dildir. Daha fazla pratik yaparak ve gerçek verilerle çalışarak yetkinliğinizi artırabilirsiniz.