🗄️ SQL

SQL, ilişkisel veritabanlarındaki veriyi sorgulamak, eklemek, güncellemek ve silmek için kullanılan standart bir dildir. Test otomasyonunda en çok backend durumunu doğrulamak için kullanılır: bir API isteği sonrası veritabanına gerçekten doğru kaydın düşüp düşmediğini SELECT sorgusuyla kontrol etmek, testten önce SQL ile test verisi hazırlamak (seed data) gibi. JOIN, GROUP BY ve subquery gibi yapıları bilmek, bir tester'ı yalnızca arayüzü değil sistemin gerçek durumunu doğrulayabilen bir mühendise dönüştürür.

SQL sorgularını yazılım testi için öğren: SELECT, JOIN, GROUP BY, window function, veri doğrulama senaryoları ve tarayıcıda çalışan alıştırmalar.

SQL'i test otomasyonu için öğrenin — backend durumunu doğrulamak, test verisi eklemek, bütünlüğü kontrol etmek ve her SQL mülakatını geçmek için. Önceden veritabanı deneyimi gerekmez.

Bu sayfada neler öğreneceksin

  • 🎯 SQL Nedir & Her QA Mühendisi Neden Bilmeli? — SQL, veritabanına 'benim için şunu bul' demek gibi. Kütüphaneciye hangi kitapları istediğini söylemek gibi. Test ettiğin uygulamanın arkasında her zaman bir veritabanı vardır — SQL ile UI'nın gösterdiklerini değil, gerçekte ne olduğunu görebilirsin. Veritabanı
  • 📦 Kurulum — SQL kurulumu, seçtiğin veritabanı motoruna göre köklü biçimde farklılaşır — SQLite için tek bir kütüphane yeterken, PostgreSQL için sunucu sürecini başlatman, kullanıcı oluşturman ve bağlantı parametrelerini yapılandırman gerekir. Peki 'en basit' ile 'producti
  • 🟢 CREATE TABLE — CREATE TABLE, bir Excel tablosunun sütun başlıklarını ve her sütunun kabul edeceği veri tipini kalıba dökmek gibidir — ama bir farkla: tabloya girilen her veri bu kalıba uymak zorundadır, aksi hâlde veritabanı reddeder. Peki Java'da bir sınıf tanımlarken field
  • 🟢 INSERT INTO — INSERT INTO, doldurduğunda bir şeylerin resmi olarak kayıt altına alındığı bir forma benzer — hangi sütuna ne değer gireceğini sıraya koyarsın, veritabanı da bu veriyi disk üzerinde kalıcı olarak saklar. Ama şunu düşün: Java'da `list.add(yeniEleman)` yazmak ye
  • 🟢 SELECT & Sıralama — SELECT, bir müdürün asistanına 'geçen hafta staging ortamında 3 saniyeden uzun süren ve başarısız olan testleri en yavaştan başlayarak getir' demesi gibidir — sen sadece sonucu tarif edersin, asistan (veritabanı motoru) hangi reyonlara, hangi sırayla bakacağın
  • 🟢 UPDATE & DELETE — UPDATE ve DELETE'i, elinde silgi ve kalemle bir sınıf listesinin başında durmak gibi düşün. Fark şurada: bu listede kimin üstünü çizeceğini isimle değil, tarif ederek söylersin — 'devamsızlığı 3'ten fazla olanlar'. Tarifi söylemeyi unutup sadece 'sil' dersen,
  • 🟢 NULL Değerler — NULL'ı, bir anket formunda boş bırakılmış kutu gibi düşün — ama '0 yazılmış kutu' ile aynı şey değil. 'Kaç kardeşin var?' sorusuna '0' yazan kişi cevap vermiştir; kutuyu boş bırakan kişi cevap vermemiştir. NULL, 'değer yok' değil, 'bilinmiyor' anlamına gelir —
  • 🟢 SQL Sorgu Sırası — SQL sorgusunun yazım sırası ile veritabanı motorunun onu işleyiş sırası tamamen farklıdır — SELECT en üste yazılır ama neredeyse en son çalışır. Fabrikadaki üretim hattını düşün: önce hammaddeyi depoya çek (FROM), kalite kontrolden geçir (WHERE), bantları kate

Sık Sorulan Sorular

SQL nedir?

SQL, ilişkisel veritabanlarındaki veriyi sorgulamak, eklemek, güncellemek ve silmek için kullanılan standart bir dildir. Test otomasyonunda en çok backend durumunu doğrulamak için kullanılır.

SQL öğrenmek ne kadar sürer?

SELECT, WHERE ve JOIN gibi temel sorguları birkaç günde öğrenebilirsin. GROUP BY, subquery ve window function dahil mülakat seviyesine gelmek genelde 3-4 hafta düzenli pratik gerektirir.

SQL ücretsiz mi?

SQL'in kendisi bir standarttır, ücretsizdir. PostgreSQL ve MySQL gibi onu uygulayan veritabanı motorlarının çoğu da ücretsiz ve açık kaynaklıdır; Oracle gibi bazı ticari motorlar ücretlidir.

SQL ile NoSQL arasındaki fark nedir?

SQL veritabanları veriyi sabit şemalı tablolarda, satır-sütun ilişkileriyle tutar; NoSQL (MongoDB gibi) esnek, şemasız doküman/anahtar-değer yapıları kullanır. Test tarafında SQL veri bütünlüğünü JOIN ile doğrularken, NoSQL doğrulaması genelde tek doküman üzerinden yapılır.

En sık karşılaşılan SQL hatası nedir?

`WHERE` koşulu olmadan yazılan bir `UPDATE` veya `DELETE` — bu, tablodaki HER satırı etkiler. Production'da bu hata geri alınamaz veri kaybına yol açabilir; bu yüzden her zaman önce `SELECT` ile koşulu test etmek önerilir.

SQL çalıştırmak için ne kurmam gerekir?

Bu sayfadaki egzersizler için hiçbir şey kurmana gerek yok — sorgular doğrudan tarayıcıda çalışan bir SQL sandbox'ında koşuyor. Gerçek bir veritabanına bağlanmak istediğinde DBeaver gibi ücretsiz bir istemciyle PostgreSQL veya MySQL'e birkaç dakikada bağlanabilirsin.

SQL mülakatında en çok hangi soru sorulur?

`INNER JOIN` ile `LEFT JOIN` arasındaki fark ve her birinin ne zaman kullanılacağı — özellikle "eksik" satırları bulmak için `LEFT JOIN` kullanma senaryosu. `GROUP BY` ile `HAVING`in farkı ve bir alt sorgu (subquery) ile `JOIN`in ne zaman birbirinin yerine geçebileceği de sık sorulan konulardır.