🟢 CREATE TABLE

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 k

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 tipleri belirtiyorken, neden SQL'de ayrıca CREATE TABLE yazmak gerekiyor? Çünkü veritabanında tablo bir kez oluşturulur ve kalıcı olarak disk üzerinde durur; Java nesneleri ise programı kapattığında bellekten silinir. Java'da `class TestResult { String name; String status; int durationMs; }` yazdığında, SQL karşılığı `CREATE TABLE test_results (name VARCHAR(100), status VARCHAR(10), duration_ms INT)` olur — fark şu ki SQL tipler, kısıtlamalar (NOT NULL, PRIMARY KEY) ve varsayılan değerlerle birlikte şemayı fiziksel olarak kalıcı hale getirir. QA mühendisi için bu şemanın doğru tasarlanması kritiktir: yanlış tanımlanan bir sütun tipi (örneğin mikrosaniye testler için INT yerine BIGINT olması gerekebilir), test verisi ekleme aşamasında sessiz veri kaybına ya da assertion hatalarına yol açabilir — ve bu hata üretim ortamına kadar fark edilmeyebilir.

CREATE TABLE — Yapıyı Tanımlama

Micro Lab: SQL — Tablo olusturma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: SQL — Tablo olusturma

Tablonun hangi varligi temsil ettigini belirle (users, orders, products)

Her sutun icin isim ve uygun veri tipi sec (INT, VARCHAR(255), DATE, BOOLEAN)

PRIMARY KEY sutununu belirle — benzersiz, degismez, NULL olamaz

NOT NULL kisitini zorunlu is alanlarina ekle

FOREIGN KEY ile iliskili tabloya referans ver, ON DELETE davranisini sec

Yeni bir SQL tablosu tasarlarken dogru sira nedir?

Temel SQL Kısıtlamaları (Constraints)

Veritabanında tabloları tanımlarken sütunlara kurallar (kısıtlamalar) ekleriz: 1. **PRIMARY KEY (Birincil Anahtar)**: Her satırı **benzersiz** şekilde tanımlayan kimlik sütunudur. Aynı değerden iki tane olamaz ve asla boş (`NULL`) bırakılamaz. 2. **AUTO_INCREMENT**: Yeni bir satır eklendiğinde bu sütunun (genellikle `id`) değerini otomatik olarak 1, 2, 3... şeklinde artırır. 3. **NOT NULL**: Bu sütunun boş bırakılmasını yasaklar, mutlaka bir değer girilmelidir. 4. **VARCHAR(n)**: Değişken uzunluklu metin saklar. `n` maksimum karakter sayısıdır (örn: `VARCHAR(100)` en fazla 100 karakter alabilir). 5. **DEFAULT**: Eğer satır eklenirken o sütuna bir değer verilmezse, otomatik atanacak varsayılan değeri belirler (örn: `DEFAULT 0` veya `DEFAULT FALSE`).

🎬 CREATE TABLE: Kalıcı Şema Kalıbı