SQL Nedir? Temel Komutlar ve Örneklerle Başlangıç
SQL nedir öğrenin. Tablo, satır, sütun kavramları ile SELECT, INSERT, UPDATE, DELETE, WHERE ve JOIN komutlarını örneklerle keşfedin.
Yowa Admin · · 5 dk okuma

SQL Nedir ve Ne İşe Yarar?
SQL, "Structured Query Language" yani Yapılandırılmış Sorgulama Dili ifadesinin kısaltmasıdır. İlişkisel veritabanı yönetim sistemlerinde verileri depolamak, sorgulamak, güncellemek ve silmek amacıyla kullanılan standart bir programlama dilidir. Veritabanları, milyonlarca veriyi düzenli bir şekilde saklayan ve bu verilere hızlıca erişilmesini sağlayan dijital arşivler gibidir. SQL ise bu arşivlerle iletişim kurmanızı sağlayan temel araçtır. Bir web sitesine üye olduğunuzda, e-ticaret sitesinden alışveriş yaptığınızda veya sosyal medyada bir gönderi beğendiğinizde arkada çalışan sistemler verileri kaydetmek ve okumak için SQL sorgularını kullanır.
İlişkisel veritabanları (RDBMS), verileri tablolar halinde saklar. Bu sistemler arasında PostgreSQL, MySQL, SQLite ve Microsoft SQL Server gibi popüler yazılımlar yer alır. Hangi veritabanı yönetim sistemini kullanırsanız kullanın, temel SQL komutları büyük ölçüde aynı kalır. Bu nedenle SQL öğrenmek, veritabanı dünyasına atılan en sağlam adımdır.
Temel Veritabanı Kavramları: Tablo, Satır ve Sütun
SQL dünyasına adım atmadan önce verilerin nasıl saklandığını anlamak gerekir. İlişkisel veritabanlarında bilgi, elektronik tablolara (Excel benzeri yapılara) çok benzeyen "tablo" adı verilen yapılar içinde tutulur.
Tablo, birbiriyle ilişkili verilerin düzenlendiği satır ve sütunların birleşimidir. Örneğin bir e-ticaret sistemindeki kullanıcıları tutmak için "kullanicilar" adında bir tablo oluşturulabilir. Bu tablonun temel yapı taşları şunlardır:
- Sütun (Column): Tablodaki her bir veri türünü temsil eder. Sütunlar, tablonun dikey yönlü bileşenleridir ve "alan" (field) olarak da adlandırılır. Kullanıcılar tablosunda ad, soyad, e-posta ve kayıt tarihi birer sütundur.
- Satır (Row): Tablodaki her bir tekil kaydı temsil eder. Satırlar yatay yönlüdür ve "kayıt" (record) veya "tuple" olarak bilinir. Kullanıcılar tablosunda sisteme kayıt olmuş her bir gerçek insan bir satırdır.
Bir veritabanı tablosunu hayal ederken sütunların özelliklerin adını, satırların ise bu özelliklerin değerlerini taşıdığını düşünebilirsiniz.
Örnek Veritabanı Senaryosu
Komutları incelemeden önce üzerinde çalışacağımız küçük bir senaryo kurgulayalım. Elimizde bir kitapçı veritabanı olduğunu ve bu veritabanında kitaplar ile yazarlar adında iki adet tablo bulunduğunu varsayalım.
kitaplar tablosu:
- id (Kitabın benzersiz numarası)
- kitap_adi (Kitabın adı)
- yazar_id (Yazarın numarası)
- fiyat (Kitabın fiyatı)
yazarlar tablosu:
- id (Yazarın benzersiz numarası)
- yazar_adi (Yazarın adı ve soyadı)
- ulke (Yazarın ülkesi)
Şimdi bu tablolar üzerinde çalışan temel SQL komutlarını inceleyelim.
SELECT Komutu ile Veri Listeleme
Veritabanından veri okumak ve listelemek için SELECT komutu kullanılır. En sık kullanılan SQL komutudur. Tablodaki tüm sütunları getirmek için yıldız (*) işareti kullanılır.
Tüm kitapları listelemek için şu sorgu yazılır:
SELECT * FROM kitaplar;
Eğer tablonun tamamı değil, sadece belirli sütunları görmek isterseniz, yıldız yerine sütun adlarını araya virgül koyarak yazabilirsiniz:
SELECT kitap_adi, fiyat FROM kitaplar;
Bu sorgu, veritabanından yalnızca kitap adlarını ve fiyat bilgilerini çeker, diğer sütunları hariç tutar.
WHERE Komutu ile Filtreleme
Veritabanındaki milyonlarca kayıt arasından sadece belirli kriterlere uyanları seçmek için WHERE koşulu kullanılır. WHERE, SELECT komutunun ardından yazılır ve mantıksal bir filtre uygular.
Örneğin, fiyatı belirli bir tutarın üzerinde olan kitapları listelemek isteyebilirsiniz:
SELECT * FROM kitaplar WHERE fiyat > 50;
Bu sorgu, kitaplar tablosundaki satırları tek tek inceler ve fiyat sütunundaki değer 50'den büyük olan satırları sonuç olarak döndürür. Metinsel filtrelemelerde ise tek tırnak işareti kullanılır:
SELECT * FROM yazarlar WHERE ulke = 'Turkiye';
INSERT Komutu ile Yeni Veri Ekleme
Var olan bir tabloya yeni bir kayıt (satır) eklemek için INSERT INTO komutu kullanılır. Hangi tabloya veri ekleneceği ve hangi sütunlara hangi değerlerin atanacağı bu komutla belirtilir.
kitaplar tablosuna yeni bir kitap eklemek için şu komut yazılır:
INSERT INTO kitaplar (id, kitap_adi, yazar_id, fiyat)
VALUES (1, 'Veritabani Temelleri', 3, 75);
Bu işlem, tabloda yeni bir satır oluşturur ve belirtilen sütunlara sırasıyla değerleri yerleştirir. Tablo tasarımı sırasında ID gibi bazı alanlar otomatik artacak şekilde ayarlandıysa, bu alanların manuel olarak eklenmesine gerek kalmaz.
UPDATE Komutu ile Veri Güncelleme
Tabloda halihazırda bulunan bir veriyi değiştirmek veya güncellemek için UPDATE komutu kullanılır. Bu komut genellikle SET anahtar kelimesi ile birlikte kullanılır.
Dikkat edilmesi gereken en önemli nokta, UPDATE komutunda WHERE koşulunun unutulmaması gerektiğidir. Eğer WHERE kullanılmazsa, tablodaki tüm satırlar güncellenir.
Belirli bir kitabın fiyatını değiştirmek için şu sorgu kullanılır:
UPDATE kitaplar
SET fiyat = 85
WHERE id = 1;
Bu sorgu, ID numarası 1 olan kitabın fiyatını 85 olarak günceller.
DELETE Komutu ile Veri Silme
Tablodan istenmeyen bir kaydı kaldırmak için DELETE FROM komutu kullanılır. UPDATE komutunda olduğu gibi, DELETE işleminde de WHERE koşulu büyük önem taşır.
Belirli bir kaydı silmek için şu sorgu yazılır:
DELETE FROM kitaplar WHERE id = 1;
Bu komut, kitaplar tablosunda ID numarası 1 olan satırı tamamen siler. Koşul belirtilmezse tablodaki tüm veriler silinebilir.
JOIN Komutu ile Tabloları Birleştirme
İlişkisel veritabanlarının en güçlü yanı, farklı tablolardaki verileri birbiriyle ilişkilendirebilmektir. Bu ilişkiyi kurmak için JOIN komutları kullanılır. Örnek senaryomuzdaki kitaplar tablosunda yazarın sadece ID numarası yer alıyordu. Yazarın adını görmek için iki tabloyu birleştirmemiz gerekir.
En yaygın kullanılan birleştirme yöntemi INNER JOIN komutudur:
SELECT kitaplar.kitap_adi, yazarlar.yazar_adi, kitaplar.fiyat
FROM kitaplar
INNER JOIN yazarlar ON kitaplar.yazar_id = yazarlar.id;
Bu sorgu, kitaplar tablosundaki yazar_id ile yazarlar tablosundaki id alanlarını eşleştirerek kitap adını ve yazar adını tek bir listede birleştirir. Böylece hangi kitabın hangi yazar tarafından yazıldığını anlamlı bir şekilde görebilirsiniz.

