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.
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 beforeHesaplanan Ü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-filledTam 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 DEFAULTDizi 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?
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
- NOT NULL ve CHECK Kısıtlamaları
- UNIQUE Kısıtlamaları ve Bileşik Anahtarlar
- FOREIGN KEY ve Başvuru Eylemleri
- DEFAULT Değerleri ve GENERATED Sütunlar