SQL Sorgu Yazımı: Temel SQL Komutları ve Örnekleri
SQL sorgu yazımı, ilişkisel veri tabanlarında verileri depolamak, yönetmek, güncellemek ve analiz etmek için kullanılan standartlaştırılmış bir dil olan SQL (Structured Query Language) üzerinden gerçekleştirilen işlemler bütünüdür. Günümüzün dijital dünyasında verinin altın değerinde olması, SQL bilgisini sadece yazılımcılar için değil, veriyle temas eden her yaştan öğrenci ve profesyonel için vazgeçilmez bir yetkinlik haline getirmektedir. Ders Merkezi olarak hazırladığımız bu rehberde, karmaşık görünen veri tabanı dünyasına en temelden giriş yapacak ve adım adım sorgu yazmayı öğreneceğiz.
- SQL’in temel mantığını ve veri tabanı yapısını kavrayacaksınız.
- En sık kullanılan SELECT, INSERT, UPDATE ve DELETE komutlarını uygulayabileceksiniz.
- Verileri belirli kriterlere göre filtrelemeyi ve sıralamayı öğreneceksiniz.
- Veri tabanı yönetiminde hata yapmamak için kritik güvenlik ipuçlarını edineceksiniz.
- Gerçek dünya senaryoları üzerinden SQL sorguları kurgulayabileceksiniz.
- Tanım: SQL, Yapılandırılmış Sorgu Dili anlamına gelir ve veri tabanlarıyla konuşmamızı sağlar.
- Kullanım Alanları: Web siteleri, mobil uygulamalar, bankacılık sistemleri ve veri analitiği.
- Temel Yapı: Veriler, satırlar ve sütunlardan oluşan tablolarda saklanır.
- Esneklik: MySQL, PostgreSQL ve SQL Server gibi farklı sistemlerde benzer komutlarla çalışır.
SQL Nedir ve Neden Öğrenmelisiniz?
SQL, bilgisayarların büyük miktardaki verileri düzenli bir şekilde sakladığı “veri tabanı” adı verilen yapılarla iletişim kurmamızı sağlayan özel bir dildir. Bir kütüphaneyi düşünün; binlerce kitap arasından istediğiniz kitabı bulmak, yeni kitaplar eklemek veya eskiyenleri listeden çıkarmak için bir sisteme ihtiyacınız vardır. SQL, dijital dünyadaki bu sistemin yönetim dilidir.
Veri tabanı yönetimi ve SQL öğrenmek, sadece kod yazmak değildir; aynı zamanda algoritmik düşünme becerisini geliştirir. Verileri nasıl gruplayacağınızı, nasıl ilişkilendireceğinizi ve en hızlı şekilde nasıl sonuca ulaşacağınızı öğretir. Bu rehber boyunca, bir okulun öğrenci kayıt sistemini yöneten bir yönetici gibi düşünecek ve sorgularımızı bu senaryo üzerinden kurgulayacağız.
Veri Tabanı Tablo Yapısını Anlamak
SQL sorgularına geçmeden önce, verilerin nasıl saklandığını anlamak kritik öneme sahiptir. Veri tabanları tablolardan oluşur. Her tablonun bir adı vardır (örneğin: ogrenciler) ve bu tablolar sütunlardan (alanlar) ve satırlardan (kayıtlar) oluşur. Sütunlar verinin türünü (ad, soyad, doğum tarihi), satırlar ise her bir bireye ait gerçek veriyi temsil eder.
Aşağıda “ogrenciler” isimli basit bir tablonun yapısı görülmektedir:
- id: Her öğrenciye özel numara (Birincil Anahtar)
- ad: Öğrencinin adı
- soyad: Öğrencinin soyadı
- not_ortalamasi: Öğrencinin akademik başarısı
Temel SQL Komutları ve Kullanımları
SQL dünyasında işlemler genellikle dört ana işlem etrafında döner: Oluşturma, Okuma, Güncelleme ve Silme (CRUD işlemleri). Bu işlemleri gerçekleştirmek için kullandığımız temel komutları inceleyelim.
1. Veri Seçme ve Listeleme: SELECT
SELECT komutu, bir veri tabanındaki tablodan veri çekmek için kullanılan en temel ve en yaygın komuttur. Hangi sütunları görmek istediğinizi belirterek sorgunuzu başlatırsınız.
SELECT * FROM ogrenciler;
Yukarıdaki sorguda yer alan yıldız (*) sembolü, “tablodaki tüm sütunları getir” anlamına gelir. Eğer sadece belirli bilgileri, örneğin öğrencilerin adlarını ve soyadlarını görmek istiyorsanız, sütun isimlerini virgülle ayırarak yazmalısınız.
SELECT ad, soyad FROM ogrenciler;
2. Verileri Filtreleme: WHERE Yan cümleciği
Binlerce satır veri arasından sadece ihtiyacınız olanları bulmak için WHERE ifadesini kullanırız. Bu ifade, sorgunuza bir koşul eklemenizi sağlar. Örneğin, sadece not ortalaması 85’ten yüksek olan başarılı öğrencileri listelemek isteyebilirsiniz.
SELECT * FROM ogrenciler WHERE not_ortalamasi > 85;
WHERE ifadesi ile birlikte eşittir (=), büyüktür (>), küçüktür (<), eşit değildir () gibi operatörleri kullanabilirsiniz. Ayrıca metinsel ifadeler için tırnak işareti kullanmayı unutmamalısınız.
SELECT * FROM ogrenciler WHERE ad = 'Ahmet';
3. Verileri Sıralama: ORDER BY
Elde ettiğiniz sonuçları belirli bir düzene sokmak için ORDER BY kullanılır. Varsayılan olarak küçükten büyüğe (A-Z) sıralama yapar. Eğer büyükten küçüğe (Z-A) sıralama yapmak isterseniz sonuna DESC ifadesini eklemelisiniz.
SELECT * FROM ogrenciler ORDER BY not_ortalamasi DESC;
Bu sorgu, sınıftaki öğrencileri en yüksek nottan en düşük nota doğru sıralayarak listeleyecektir.
Veri Ekleme, Güncelleme ve Silme İşlemleri
Veri tabanı sadece okumak için değildir; sürekli değişen bir yapıdır. Yeni veriler eklenir, mevcut veriler güncellenir veya artık ihtiyaç duyulmayan veriler silinir.
4. Yeni Veri Ekleme: INSERT INTO
Tabloya yeni bir satır eklemek için INSERT INTO komutu kullanılır. Burada dikkat edilmesi gereken nokta, sütun isimleri ile değerlerin sırasının aynı olmasıdır.
INSERT INTO ogrenciler (ad, soyad, not_ortalamasi)
VALUES ('Ayşe', 'Yılmaz', 92);
5. Mevcut Veriyi Güncelleme: UPDATE
Bir kaydın bilgilerini değiştirmek için UPDATE komutu kullanılır. Bu komutla birlikte mutlaka WHERE kullanılmalıdır. Aksi takdirde tablodaki tüm satırlar güncellenir!
UPDATE ogrenciler SET not_ortalamasi = 95 WHERE id = 1;
6. Veri Silme: DELETE
Bir kaydı tamamen silmek için DELETE komutu kullanılır. Tıpkı UPDATE gibi, bu komut da WHERE koşulu ile sınırlandırılmalıdır.
DELETE FROM ogrenciler WHERE id = 5;
Gelişmiş Filtreleme ve Mantıksal Operatörler
Bazen tek bir koşul yeterli olmaz. Birden fazla şartı birleştirmek için AND (VE), OR (VEYA) ve NOT (DEĞİL) operatörlerini kullanırız.
- AND: Belirtilen tüm koşulların doğru olması gerekir.
- OR: Koşullardan en az birinin doğru olması yeterlidir.
- BETWEEN: Belirli bir aralıktaki değerleri bulmak için kullanılır.
SELECT * FROM ogrenciler WHERE not_ortalamasi BETWEEN 70 AND 90 AND soyad = 'Kaya';
Bu sorgu, soyadı Kaya olan ve not ortalaması 70 ile 90 arasında bulunan öğrencileri getirecektir. SQL’in bu esnek yapısı, devasa veri yığınları içinden tam olarak aradığınız iğneyi bulmanızı sağlar.
SQL Operatörleri ve Fonksiyonları Karşılaştırma Tablosu
Aşağıdaki tablo, sorgu yazarken en sık kullanacağınız operatörleri ve bunların ne işe yaradığını özetlemektedir.
| Operatör / Komut | Kategori | Kısa Açıklama |
|---|---|---|
| SELECT | Veri Çekme | Sütunları seçer. |
| WHERE | Filtreleme | Satırları kısıtlar. |
| LIKE | Arama | Metin içinde desen arar. |
| IN | Filtreleme | Çoklu değer kontrolü yapar. |
| COUNT() | Fonksiyon | Satır sayısını verir. |
Veri Analizi İçin Agrega Fonksiyonları
SQL sadece verileri listelemekle kalmaz, aynı zamanda matematiksel hesaplamalar da yapar. Bunlara “agrega fonksiyonları” denir. En çok kullanılanlar şunlardır:
- SUM: Toplam değeri hesaplar.
- AVG: Ortalama değeri hesaplar.
- MAX / MIN: En büyük ve en küçük değerleri bulur.
- COUNT: Kayıt sayısını toplar.
SELECT AVG(not_ortalamasi) FROM ogrenciler;
Bu tek satırlık sorgu, tüm okulun akademik başarı ortalamasını saniyeler içinde karşınıza getirir. Elle hesaplamanın saatler süreceği verilerde SQL’in gücü burada ortaya çıkar.
Öğrendiklerinizi Pekiştirin
SQL öğrenmek bir dil öğrenmek gibidir; ne kadar çok pratik yaparsanız o kadar akıcı konuşursunuz. Kendi hayali veri tabanlarınızı oluşturun, tablolar arasındaki ilişkileri kurgulayın ve karmaşık sorular sorun. Örneğin, “Kütüphanemde en çok okunan 5 kitap hangisi?” veya “Hangi müşterilerim son 3 aydır alışveriş yapmadı?” gibi soruların yanıtlarını SQL ile bulmaya çalışın.
Hata yapmaktan korkmayın. SQL hata mesajları genellikle size nerede yanlış yaptığınızı söyler (örneğin bir virgül eksikliği veya yanlış yazılmış bir sütun adı). Bu hataları ayıklamak, öğrenme sürecinin en değerli parçasıdır.
- “ogrenciler” tablosundaki tüm verileri getiren sorgu nasıldır?
- Sadece adı “Can” olan öğrencileri listelemek için hangi WHERE koşulu kullanılır?
- Verileri büyükten küçüğe sıralamak için ORDER BY komutuyla birlikte hangi anahtar kelime kullanılır?
- Tablodaki tüm satırları yanlışlıkla silmemek için UPDATE ve DELETE ile neyi kullanmalıyız?
- Bir tablodaki toplam kayıt sayısını öğrenmek için hangi fonksiyon kullanılır?
- SQL, veri tabanları ile iletişim kurmak için kullanılan evrensel bir dildir.
- SELECT ile veri çekilir, WHERE ile filtreleme yapılır.
- INSERT, UPDATE ve DELETE ile veriler üzerinde değişiklik yapılır.
- ORDER BY verileri sıralarken, AVG, SUM, COUNT gibi fonksiyonlar analiz yapar.
- Veri güvenliği için UPDATE ve DELETE işlemlerinde WHERE koşulu hayati önem taşır.
Pratik Yapma Zamanı
SQL sorgu yazımı becerinizi geliştirmek için bilgisayarınıza MySQL veya PostgreSQL gibi bir veri tabanı yönetim sistemi kurabilir veya çevrimiçi SQL editörlerini kullanabilirsiniz. İlk sorgunuzu yazdığınızda ve o verilerin ekranda belirdiğini gördüğünüzde, veri biliminin kapılarını aralamış olacaksınız. Unutmayın, en karmaşık sistemler bile bu rehberde öğrendiğiniz temel komutların üzerine inşa edilmiştir. Bir sonraki adımda, birden fazla tabloyu birleştirmeyi sağlayan JOIN yapılarını keşfetmeye hazır olun!