0Pricing
SQL Academy · Ders

NOT NULL ve CHECK Kısıtlamaları

NOT NULL ile eksik değerleri yasaklayın ve CHECK ile alan kurallarını doğrulayın (price > 0, status IN ('active','archived')).

NOT NULL ve CHECK Kısıtlamaları, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Kısıtlar Neden Kullanılır?

Kısıtlar doğrulamayı veritabanına taşır. Faydası büyüktür: her uygulama, betik ve anlık sorgu geçerli veriler yazar veya açıkça hata verir.

NOT NULL

En basit kısıt: bu sütun bir değer içermelidir:

CREATE TABLE users (
  id    BIGSERIAL PRIMARY KEY,
  email VARCHAR(255) NOT NULL,
  age   INT                                  -- NULL allowed
);

Sonradan NOT NULL Ekleme

Önce mevcut verileri doldurun, ardından kısıtı ekleyin:

UPDATE users SET email = 'unknown@example.com' WHERE email IS NULL;
ALTER TABLE users ALTER COLUMN email SET NOT NULL;

CHECK Kısıtı

Her satırın sağlaması gereken herhangi bir mantıksal ifade:

CREATE TABLE products (
  id BIGSERIAL PRIMARY KEY,
  name TEXT NOT NULL,
  price NUMERIC(10,2) NOT NULL CHECK (price > 0),
  discount NUMERIC(5,2) DEFAULT 0 CHECK (discount BETWEEN 0 AND 100)
);

Enum Benzeri Değerlerle CHECK

Bir sütunu sabit bir değer kümesiyle kısıtlayın:

CREATE TABLE orders (
  id BIGSERIAL PRIMARY KEY,
  status TEXT NOT NULL
    CHECK (status IN ('pending','paid','shipped','cancelled'))
);

NULL CHECK Denetiminden Sessizce Geçer

Bir CHECK kısıtı, ifade NULL olduğunda (bilinmiyorsa) geçer. Kesin güvence gerektiğinde bunu NOT NULL ile birleştirin:

CREATE TABLE invoices (
  amount NUMERIC(10,2) NOT NULL CHECK (amount > 0)
);

Birden Çok Sütunlu CHECK

Birden çok sütuna başvurabilirsiniz:

CREATE TABLE bookings (
  start_at TIMESTAMPTZ NOT NULL,
  end_at   TIMESTAMPTZ NOT NULL,
  CHECK (start_at < end_at)
);

Sonradan CHECK Ekleme

Önce mevcut satırları doğrulayın, ardından kısıtı ekleyin:

ALTER TABLE products
  ADD CONSTRAINT positive_price CHECK (price > 0);
-- fails if any row violates it

Büyük Tablolar İçin NOT VALID Taktiği

Başlangıçtaki tam taramayı atlayın; daha sonra arka planda doğrulayın:

ALTER TABLE products
  ADD CONSTRAINT positive_price CHECK (price > 0) NOT VALID;
ALTER TABLE products VALIDATE CONSTRAINT positive_price;

Adlandırılmış Kısıtlar

Hata iletilerinin ve şema geçişlerinin öngörülebilir olması için kısıtlarınızı her zaman adlandırın:

ALTER TABLE products
  ADD CONSTRAINT products_price_positive CHECK (price > 0);

Mantığı Uygulamada Tekrarlamayın

Veritabanı bunu zorluyorsa her kod yolu bundan yararlanır; "doğrulamayı unuttum" durumu yaşanmaz. Kullanıcı deneyimi için uygulamadaki yinelenen doğrulamayı koruyun (anında geri bildirim sağlar), ancak asıl doğru kaynağı veritabanı yapın.

Özet

NOT NULL ve CHECK, en yaygın hatalı verilerin engellenmesini sağlar.

  • NOT NULL: eksik değer yoktur
  • CHECK: satır başına herhangi bir kural
  • Çevrimiçi eklemeler için NOT VALID + VALIDATE kullanın

Hızlı Kontrol

NOT NULL içermeyen bir sütuna CHECK (price > 0) yazarsanız ne olur?

Sıkça Sorulan Sorular

“NOT NULL ve CHECK Kısıtlamaları” dersi ücretsiz mi?

Evet — “NOT NULL ve CHECK Kısıtlamaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“NOT NULL ve CHECK Kısıtlamaları” dersinde ne öğreneceğim?

NOT NULL ile eksik değerleri yasaklayın ve CHECK ile alan kurallarını doğrulayın (price > 0, status IN ('active','archived')). SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“NOT NULL ve CHECK Kısıtlamaları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. NOT NULL ve CHECK Kısıtlamaları
  2. UNIQUE Kısıtlamaları ve Bileşik Anahtarlar
  3. FOREIGN KEY ve Başvuru Eylemleri
  4. DEFAULT Değerleri ve GENERATED Sütunlar
← SQL Academy Sayfasına Dön