SQL Academy · Ders

DEFAULT Değerleri ve GENERATED Sütunlar

DEFAULT değerleri sağlayın (NOW(), uuid_generate_v4(), 'pending') ve GENERATED ALWAYS AS sütunlarıyla değerleri anında hesaplayın.

4. ders / 413 adım

DEFAULT Değerleri ve GENERATED Sütunlar, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. 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.

DEFAULT: Eksik Değerleri Otomatik Doldurma

INSERT bir sütunu atladığında DEFAULT kullanılır:

CREATE TABLE users (
  id BIGSERIAL PRIMARY KEY,
  email VARCHAR(255) NOT NULL,
  status TEXT NOT NULL DEFAULT 'active',
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

Yaygın DEFAULT'lar

Her yerde kullanacağınız kalıplar:

created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
id UUID PRIMARY KEY DEFAULT gen_random_uuid()
is_active BOOLEAN NOT NULL DEFAULT true
status TEXT NOT NULL DEFAULT 'pending'

Sonradan DEFAULT Ekleme

Mevcut satırlar varsayılan olarak geriye dönük doldurulmaz; yalnızca yeni INSERT işlemleri varsayılanı kullanır:

ALTER TABLE users ALTER COLUMN status SET DEFAULT 'active';

-- For existing rows, backfill manually:
UPDATE users SET status = 'active' WHERE status IS NULL;

DEFAULT ile NOT NULL Ekleme

PostgreSQL 11+, sabit DEFAULT değerine sahip NOT NULL sütunlarının hızlı bir şekilde eklenmesini destekler; tabloyu yeniden yazmaz:

ALTER TABLE users
  ADD COLUMN signup_source TEXT NOT NULL DEFAULT 'web';
-- Fast in PG 11+, slow before

Hesaplanan Üretilmiş Sütunlar (STORED)

Değeri diğer sütunlardan otomatik olarak hesaplanan bir sütun:

CREATE TABLE orders (
  id BIGSERIAL PRIMARY KEY,
  qty INT NOT NULL,
  unit_price NUMERIC(10,2) NOT NULL,
  total NUMERIC(12,2) GENERATED ALWAYS AS (qty * unit_price) STORED
);

INSERT INTO orders (qty, unit_price) VALUES (3, 9.99);
SELECT * FROM orders;       -- total is auto-filled

Tam Metin Araması için Üretilmiş tsvector

STORED üretilmiş sütunların harika bir kullanım alanı:

ALTER TABLE articles
  ADD COLUMN search_doc tsvector
    GENERATED ALWAYS AS (to_tsvector('english', title || ' ' || body)) STORED;
CREATE INDEX articles_search_idx ON articles USING GIN(search_doc);

Sanal Üretilmiş Sütunlar

PostgreSQL bugün yalnızca STORED desteği sunar (VIRTUAL, gelecekteki sürümlerde gelecek). Diğer veritabanları (MySQL), SELECT sırasında hesaplanan VIRTUAL sütunlarını destekler.

Üretilmiş Sütunlara INSERT Yapamazsınız

Buna yazmaya çalışmak bir hatadır — bunlar sizin tarafınızdan depolanmaz, hesaplanır:

INSERT INTO orders (qty, unit_price, total) VALUES (3, 9.99, 30);
-- ERROR: column "total" can only be updated to DEFAULT

Dizi Tabanlı Varsayılanlar

SERIAL/BIGSERIAL, "bir diziden varsayılan değer" ifadesinin kısaltmasıdır:

-- Roughly equivalent:
CREATE TABLE t (id BIGSERIAL PRIMARY KEY);

-- =>
CREATE SEQUENCE t_id_seq;
CREATE TABLE t (id BIGINT PRIMARY KEY DEFAULT nextval('t_id_seq'));
ALTER SEQUENCE t_id_seq OWNED BY t.id;

IDENTITY Sütunları

Kimlik tanımlamanın standart SQL yolu:

CREATE TABLE t (
  id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  name TEXT
);

-- GENERATED BY DEFAULT AS IDENTITY allows explicit overrides.

DEFAULT ve İş Mantığı

DEFAULT değerleri basit tutun. Karmaşık mantık uygulama koduna veya BEFORE INSERT tetikleyicisine aittir.

Özet

DEFAULT boş alanları doldurur; GENERATED diğer sütunlardan hesaplama yapar.

  • NOW(), gen_random_uuid(), sabit hazır değerler
  • Hesaplanan STORED sütunlar, türetilmiş veriler için idealdir
  • Kimlik sütunları modern PK kalıbıdır

Hızlı Kontrol

Değer sağlanmadığında INSERT sırasında bir sütunun geçerli zamanla otomatik doldurulmasını hangi yan tümce sağlar?

Başlamak ücretsiz

Yapay zeka eğitmeniyle SQL öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
46
Dersler
183

Sıkça Sorulan Sorular

“DEFAULT Değerleri ve GENERATED Sütunlar” dersi ücretsiz mi?

Evet — “DEFAULT Değerleri ve GENERATED Sütunlar” 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.

“DEFAULT Değerleri ve GENERATED Sütunlar” dersinde ne öğreneceğim?

DEFAULT değerleri sağlayın (NOW(), uuid_generate_v4(), 'pending') ve GENERATED ALWAYS AS sütunlarıyla değerleri anında hesaplayın. 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 4. dersidir.

“DEFAULT Değerleri ve GENERATED Sütunlar” 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