SQL (Structured Query Language), ilişkisel veritabanlarındaki verileri sorgulamak, eklemek, güncellemek ve yönetmek için kullanılan standart bir dildir. Genel amaçlı programlama dillerinin aksine SQL, özel olarak veriyle çalışmak için tasarlanmış bir sorgu dilidir. Bu rehberde SQL'in ne olduğunu, nasıl çalıştığını ve nerede kullanıldığını dengeli biçimde ele alıyoruz.

SQL Nedir ve Nereden Geldi?

SQL, 1970'lerde IBM'de geliştirilen ilişkisel veritabanı modeline dayanır. Bu model, verileri satır ve sütunlardan oluşan tablolarda saklar ve tablolar arasındaki ilişkiler üzerinden anlamlı sonuçlar üretmeye olanak tanır. SQL, bu modeli pratikte kullanılabilir kılan dil olarak ortaya çıktı.

SQL bir ANSI ve ISO standardıdır. Standart bir temel olsa da, farklı veritabanı sistemleri (örneğin PostgreSQL, MySQL, SQL Server, Oracle, SQLite) kendi eklentileri ve küçük söz dizimi farklarıyla gelir. Temel komutlar büyük ölçüde ortaktır; ileri özelliklerde sistemler arasında farklılıklar görülebilir.

SQL Nasıl Çalışır?

SQL, bildirimsel (declarative) bir dildir: ne istediğinizi tarif edersiniz, nasıl yapılacağına veritabanı yönetim sistemi karar verir. Bir sorgu yazdığınızda, veritabanının sorgu eniyileyicisi (query optimizer) veriyi en verimli şekilde getirmek için bir yürütme planı oluşturur. Bu, aynı sonucu üretmenin birden çok yolu arasından verimli olanı seçmesini sağlar.

SQL komutları genellikle işlevlerine göre gruplanır: veri sorgulama ve değiştirme (DML), tablo ve şema tanımlama (DDL) ve yetki yönetimi (DCL). En sık kullanılanı, veriyi okumak için kullanılan SELECT komutudur.

sql
SELECT ad, fiyat
FROM urunler
WHERE fiyat > 100
ORDER BY fiyat DESC;

Temel SQL Komutları

SQL'in gücü, az sayıda temel komutun esnek biçimde birleştirilebilmesinden gelir. Aşağıdaki tablo en sık kullanılan komutları özetler:

Komutİşlevi
SELECTTablolardan veri sorgular ve getirir
INSERTTabloya yeni satır ekler
UPDATEVar olan satırları günceller
DELETESatırları siler
CREATETablo veya veritabanı gibi nesneler oluşturur
JOINBirden çok tabloyu ilişki üzerinden birleştirir

Gerçek dünyadaki veriler çoğunlukla birden çok tabloya dağıtılır; bu tabloları bir araya getirmek için JOIN kullanılır. Örneğin müşterileri ve siparişlerini ilişkilendirmek bu şekilde yapılır:

sql
SELECT m.ad, s.tarih
FROM musteriler m
JOIN siparisler s ON s.musteri_id = m.id
WHERE s.tarih >= '2026-01-01';

SQL Nerelerde Kullanılır?

SQL, veriyle çalışan hemen her yazılım projesinin temel bir parçasıdır. Doğrudan veritabanıyla çalışmanın yanında, pek çok programlama dili SQL sorgularını kod içinden çalıştırır:

  • Web ve mobil uygulamaların arka uç veritabanları
  • Raporlama, iş zekası ve veri analizi
  • Veri ambarları ve büyük veri sorgulama katmanları
  • Günlük (log) ve olay verilerinin saklanması ve sorgulanması
  • İçerik yönetim sistemleri ve e-ticaret altyapıları

Çoğu uygulama, SQL'i bir genel amaçlı dille birlikte kullanır. Örneğin Python ve PHP, veritabanına erişip SQL sorguları çalıştırmak için yaygın tercihlerdir. Dilleri topluca değerlendiren programlama dilleri rehberi yazımız da bağlamı tamamlar.

SQL ve NoSQL Farkı

SQL, ilişkisel veritabanlarıyla çalışır ve verinin katı bir şemaya (tablolar, sütunlar, tipler) uymasını bekler. NoSQL ise belge, anahtar-değer veya grafik gibi farklı veri modellerini kapsayan bir şemsiye terimdir ve genellikle daha esnek şema yaklaşımları sunar.

Hangisinin uygun olduğu, veriye ve erişim desenlerine bağlıdır. Güçlü tutarlılık ve karmaşık ilişkisel sorgular gerektiren işlerde SQL öne çıkar; çok büyük ölçekte esnek şema veya belirli erişim desenleri gerektiren durumlarda NoSQL çözümleri değerlendirilebilir. İki yaklaşım çoğu zaman birbirini dışlamaz, aynı sistemde birlikte de kullanılabilir.

SQL Öğrenmeye Nasıl Başlanır?

SQL öğrenmenin en etkili yolu, küçük bir veritabanı üzerinde gerçek sorgular yazmaktır. SQLite gibi kurulum gerektirmeyen hafif bir sistemle başlamak, hızlı denemeler yapmayı kolaylaştırır. Önce tek tablo sorgularında ustalaşıp ardından birden çok tabloyu birleştirmeye geçmek sağlıklı bir ilerleme çizgisidir.

  • SELECT, WHERE ve ORDER BY ile tek tablo sorguları yazın
  • INSERT, UPDATE ve DELETE ile veriyi değiştirin
  • JOIN ile birden çok tabloyu ilişkilendirmeyi öğrenin
  • GROUP BY ve toplama fonksiyonlarıyla özet raporlar üretin
  • Dizin (index) kavramını ve sorgu performansını inceleyin

Sık Sorulanlar

SQL bir programlama dili mi?

SQL, genel amaçlı bir programlama dilinden çok, veriyle çalışmaya özel bir sorgu dilidir. Döngü ve koşul gibi programlama yapıları bazı veritabanı sistemlerinin eklentileriyle mümkün olsa da, SQL'in çekirdeği bildirimsel veri sorgulamaya odaklanır.

SQL öğrenmek zor mu?

SQL'in temel komutları kısa sürede öğrenilebilir; basit sorgular oldukça sezgiseldir. Asıl derinlik, birden çok tablo birleştirme, performans ayarlama ve karmaşık raporlama sorgularında ortaya çıkar.

Her veritabanında aynı SQL mi kullanılır?

Temel SQL büyük ölçüde ortaktır, ancak her veritabanı sistemi kendi küçük farklılıklarını ve eklentilerini getirir. Temel komutlar sistemler arasında taşınabilir olsa da, ileri özelliklerde belgelere bakmak gerekir.