Skip to main content
Yazılım Geliştirme

SQL Öğrenme Rehberi: Veritabanı Sorgulama Temelleri

Mart 06, 2026 7 dk okuma 21 views Raw
Ayrıca mevcut: en
SQL veritabanı sorgulama ekranı
İçindekiler

SQL Nedir ve Neden Önemlidir?

SQL (Structured Query Language), ilişkisel veritabanlarıyla iletişim kurmak için kullanılan standart bir programlama dilidir. 1970'li yıllarda IBM tarafından geliştirilen SQL, bugün dünyanın en yaygın kullanılan veritabanı sorgulama dili olma özelliğini taşımaktadır. Web uygulamalarından büyük veri analizine, finans sektöründen sağlık hizmetlerine kadar her alanda SQL bilgisi vazgeçilmez bir yetkinlik haline gelmiştir.

Veritabanları, dijital dünyanın temel yapı taşlarıdır. Her gün kullandığınız uygulamalar, sosyal medya platformları, e-ticaret siteleri ve bankacılık sistemleri arka planda SQL ile çalışan veritabanlarına dayanmaktadır. Bu nedenle SQL öğrenmek, yazılım geliştirme kariyerinizde atacağınız en değerli adımlardan biridir.

İlişkisel Veritabanı Kavramları

SQL öğrenmeye başlamadan önce ilişkisel veritabanı kavramlarını anlamak önemlidir. İlişkisel veritabanları, verileri tablolar halinde organize eder. Her tablo satırlar ve sütunlardan oluşur. Satırlar kayıtları, sütunlar ise veri alanlarını temsil eder.

Temel Veritabanı Terimleri

  • Tablo (Table): Verilerin satır ve sütunlar halinde düzenlendiği yapı
  • Satır (Row/Record): Tablodaki tek bir veri kaydı
  • Sütun (Column/Field): Tablodaki bir veri alanı
  • Birincil Anahtar (Primary Key): Her kaydı benzersiz olarak tanımlayan sütun
  • Yabancı Anahtar (Foreign Key): Tablolar arası ilişki kuran referans sütunu
  • İndeks (Index): Sorgu performansını artıran veri yapısı
  • Şema (Schema): Veritabanının genel yapısını tanımlayan blueprint

Popüler Veritabanı Yönetim Sistemleri

SQL kullanan birçok veritabanı yönetim sistemi (DBMS) bulunmaktadır. MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database ve SQLite en yaygın olanlarıdır. Her biri standart SQL sözdizimini desteklerken, kendine özgü ek özellikler de sunar. Başlangıç seviyesinde hangisini seçerseniz seçin, temel SQL bilginiz tüm sistemlerde geçerli olacaktır.

SELECT: Veri Sorgulama Temelleri

SQL'de en sık kullanılan komut SELECT ifadesidir. Bu komut, veritabanından veri çekmek için kullanılır ve SQL öğrenmenin ilk adımıdır.

Temel SELECT Sözdizimi

Bir tablodan tüm verileri çekmek için SELECT * FROM tablo_adı sözdizimi kullanılır. Yıldız işareti tüm sütunları temsil eder. Belirli sütunları seçmek istediğinizde ise sütun adlarını virgülle ayırarak belirtirsiniz. Örneğin SELECT ad, soyad, email FROM musteriler ifadesi yalnızca üç sütundaki verileri getirir.

WHERE ile Filtreleme

WHERE koşulu, sorgu sonuçlarını filtrelemek için kullanılır. Eşitlik, büyüklük, küçüklük gibi karşılaştırma operatörleri ile verilerinizi daraltabilirsiniz. AND ve OR mantıksal operatörleri ile birden fazla koşulu birleştirebilirsiniz. LIKE operatörü ise metin arama işlemleri için idealdir; yüzde işareti joker karakter olarak kullanılır.

ORDER BY ile Sıralama

Sorgu sonuçlarını belirli bir düzende sıralamak için ORDER BY kullanılır. ASC artan sıralama, DESC ise azalan sıralama sağlar. Birden fazla sütuna göre sıralama yapabilirsiniz. İlk sütun ana sıralama kriteri olurken, eşitlik durumunda ikinci sütun devreye girer.

LIMIT ve OFFSET

Büyük veri setlerinde tüm sonuçları bir kerede getirmek performans sorunlarına yol açabilir. LIMIT komutu döndürülecek kayıt sayısını sınırlar, OFFSET ise belirli bir noktadan itibaren sonuçları getirmeye başlar. Bu iki komut birlikte sayfalama işlemleri için kullanılır.

Veri Manipülasyon Komutları

SQL sadece veri sorgulamaktan ibaret değildir. Veritabanına yeni kayıtlar eklemek, mevcut kayıtları güncellemek ve silmek de SQL'in temel işlevleri arasındadır.

INSERT: Veri Ekleme

INSERT INTO komutu ile tablolara yeni kayıtlar ekleyebilirsiniz. Sütun adlarını ve karşılık gelen değerleri belirtmeniz gerekir. Birden fazla kaydı tek bir INSERT ifadesiyle eklemek de mümkündür; bu yöntem performans açısından avantajlıdır.

UPDATE: Veri Güncelleme

UPDATE komutu mevcut kayıtları değiştirmek için kullanılır. SET ifadesi ile güncellenecek sütunları ve yeni değerleri belirtirsiniz. WHERE koşulu eklemeden UPDATE çalıştırmak tablodaki tüm kayıtları güncelleyeceği için dikkatli olmak gerekir. Bu, yeni başlayanların en sık yaptığı hatalardan biridir.

DELETE: Veri Silme

DELETE FROM komutu tablodaki kayıtları silmek için kullanılır. Tıpkı UPDATE gibi, WHERE koşulu olmadan çalıştırıldığında tablodaki tüm veriler silinir. Silme işlemlerinden önce mutlaka yedek almak ve WHERE koşulunuzu doğrulamak iyi bir pratiktir.

JOIN İşlemleri: Tabloları Birleştirme

Gerçek dünya uygulamalarında veriler genellikle birden fazla tabloda saklanır. JOIN işlemleri, bu tabloları anlamlı ilişkiler üzerinden birleştirerek kapsamlı sorgular oluşturmanıza olanak tanır.

INNER JOIN

INNER JOIN, her iki tabloda da eşleşen kayıtları döndürür. En yaygın kullanılan birleştirme türüdür. Örneğin siparişler tablosu ile müşteriler tablosunu müşteri numarası üzerinden birleştirerek her siparişin hangi müşteriye ait olduğunu görebilirsiniz.

LEFT JOIN ve RIGHT JOIN

LEFT JOIN, sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür. Eşleşme olmayan durumlarda sağ taraftaki sütunlar NULL değer alır. RIGHT JOIN ise bunun tam tersidir. LEFT JOIN, özellikle eşleşmeyen kayıtları bulmak istediğinizde oldukça kullanışlıdır.

FULL OUTER JOIN

FULL OUTER JOIN her iki tablodaki tüm kayıtları döndürür. Eşleşmeyen kayıtlarda karşı taraftaki sütunlar NULL değer alır. Bu birleştirme türü, iki veri seti arasındaki farkları ve benzerlikleri analiz etmek için idealdir.

GROUP BY ve Toplama Fonksiyonları

Verileri gruplamak ve istatistiksel analizler yapmak SQL'in en güçlü özelliklerinden biridir. GROUP BY ifadesi belirli bir sütundaki değerlere göre kayıtları gruplar ve toplama fonksiyonları ile her grup için özet bilgiler üretir.

Temel Toplama Fonksiyonları

  • COUNT(): Kayıt sayısını hesaplar
  • SUM(): Sayısal değerlerin toplamını verir
  • AVG(): Ortalama değeri hesaplar
  • MIN(): En küçük değeri bulur
  • MAX(): En büyük değeri bulur

HAVING ile Grup Filtreleme

WHERE koşulu satır düzeyinde filtreleme yaparken, HAVING ifadesi grup düzeyinde filtreleme sağlar. Örneğin toplam sipariş tutarı belirli bir miktarın üzerinde olan müşterileri bulmak istediğinizde GROUP BY ile birlikte HAVING kullanırsınız.

Alt Sorgular (Subqueries)

Alt sorgular, bir SQL ifadesinin içine gömülmüş başka bir SQL ifadesidir. Karmaşık veri çekme işlemlerini daha küçük ve yönetilebilir parçalara böler. WHERE, FROM ve SELECT ifadelerinin içinde alt sorgular kullanabilirsiniz.

Alt sorgular tek bir değer, bir sütun veya tam bir sonuç seti döndürebilir. IN operatörü ile alt sorgu sonuçlarında yer alan kayıtları filtreleyebilir, EXISTS ile alt sorgunun sonuç döndürüp döndürmediğini kontrol edebilirsiniz. Performans açısından bazı alt sorgular JOIN ile değiştirilerek optimize edilebilir.

İleri Düzey SQL Teknikleri

CASE İfadesi

CASE ifadesi, SQL içinde koşullu mantık oluşturmanıza olanak tanır. Programlama dillerindeki if-else yapısına benzer şekilde çalışır. Veri dönüştürme, kategorilendirme ve koşullu hesaplamalar için sıklıkla kullanılır.

UNION ve UNION ALL

UNION operatörü iki veya daha fazla SELECT sorgusunun sonuçlarını birleştirir. UNION tekrar eden satırları otomatik olarak kaldırırken, UNION ALL tüm satırları dahil eder. Birleştirilen sorguların aynı sayıda sütuna sahip olması ve sütun veri tiplerinin uyumlu olması gerekir.

Görünümler (Views)

Görünümler, karmaşık sorguları sanal tablolar olarak kaydetmenize olanak tanır. Bir kez oluşturduğunuz görünümü normal bir tablo gibi sorgulayabilirsiniz. Güvenlik, basitleştirme ve yeniden kullanılabilirlik açısından görünümler önemli avantajlar sunar.

SQL Performans Optimizasyonu

Veritabanınız büyüdükçe sorgu performansı kritik hale gelir. İyi yazılmış SQL sorguları ile kötü yazılmış olanlar arasında performans farkı binlerce kat olabilir.

İndeks Kullanımı

İndeksler, veritabanı tablolarındaki verilere hızlı erişim sağlayan yapılardır. WHERE, JOIN ve ORDER BY ifadelerinde sıkça kullanılan sütunlara indeks eklemek sorgu performansını önemli ölçüde artırır. Ancak gereksiz indeksler yazma işlemlerini yavaşlatacağından, dengeli bir yaklaşım benimsenmelidir.

Sorgu Optimizasyon İpuçları

  • SELECT * yerine yalnızca ihtiyaç duyulan sütunları seçin
  • WHERE koşullarında indekslenmiş sütunları kullanın
  • Büyük sonuç setlerinde LIMIT kullanarak sayfalama yapın
  • Alt sorgular yerine mümkün olduğunca JOIN tercih edin
  • EXPLAIN komutu ile sorgu planlarını analiz edin
  • Gereksiz DISTINCT kullanımından kaçının

SQL Öğrenme Yol Haritası

SQL öğrenme sürecinizi aşamalı olarak planlamak başarınızı artıracaktır. Aşağıdaki yol haritası size sistematik bir ilerleme sağlayacaktır.

Başlangıç Seviyesi

  1. Temel SELECT sorguları ve filtreleme işlemleri
  2. INSERT, UPDATE ve DELETE komutları
  3. Sıralama ve sayfalama teknikleri
  4. Basit JOIN işlemleri

Orta Seviye

  1. Çoklu JOIN ve alt sorgular
  2. GROUP BY ve toplama fonksiyonları
  3. CASE ifadeleri ve koşullu mantık
  4. Görünümler ve geçici tablolar

İleri Seviye

  1. Pencere fonksiyonları (Window Functions)
  2. Saklı prosedürler ve tetikleyiciler
  3. Performans optimizasyonu ve indeks stratejileri
  4. Veritabanı tasarımı ve normalizasyon

Pratik Yapmanın Önemi

SQL öğrenmenin en etkili yolu bol bol pratik yapmaktır. Teorik bilgiyi uygulamaya dökmedikçe gerçek anlamda öğrenme gerçekleşmez. SQLite gibi hafif veritabanları ile kendi bilgisayarınızda pratik yapabilir, çevrimiçi platformlarda gerçek dünya senaryolarına benzer alıştırmalar çözebilirsiniz.

SQL öğrenirken en önemli kural düzenli pratik yapmaktır. Her gün birkaç sorgu yazmak, haftada bir gün yoğun çalışmaktan çok daha etkilidir. Küçük projeler oluşturun ve gerçek verilerle çalışarak becerilerinizi geliştirin.

Kendi projelerinizde veritabanı kullanmaya başlamak da mükemmel bir öğrenme yöntemidir. Basit bir kütüphane yönetim sistemi, kişisel finans takip uygulaması veya blog veritabanı gibi projeler SQL becerilerinizi hızla geliştirecektir. Her projede yeni SQL kavramlarını uygulamaya çalışarak bilginizi pekiştirin ve ileri düzey tekniklere adım adım geçiş yapın.

Bu yazıyı paylaş