Constraint & Validasi — SQL

Constraint memastikan integritas data di level database — pertahanan terakhir sebelum data buruk masuk. NOT NULL — kolom wajib diisi: CREATE TABLE users ( name

Constraint memastikan integritas data di level database — pertahanan terakhir sebelum data buruk masuk.

NOT NULL — kolom wajib diisi:

CREATE TABLE users (
    name TEXT NOT NULL,    -- Wajib
    bio TEXT               -- Boleh kosong (NULL)
);

UNIQUE — nilai harus unik:

CREATE TABLE users (
    email TEXT UNIQUE NOT NULL
);
-- INSERT dengan email yang sama akan error

CHECK — validasi custom:

CREATE TABLE products (
    price REAL CHECK(price > 0),
    stock INTEGER CHECK(stock >= 0),
    rating REAL CHECK(rating BETWEEN 0 AND 5)
);

DEFAULT — nilai bawaan:

CREATE TABLE posts (
    published INTEGER DEFAULT 0,
    created_at TEXT DEFAULT (datetime('now'))
);

FOREIGN KEY dengan CASCADE:

CREATE TABLE posts (
    user_id INTEGER NOT NULL,
    FOREIGN KEY (user_id) REFERENCES users(id)
        ON DELETE CASCADE     -- Hapus user → hapus semua post-nya
        ON UPDATE CASCADE     -- Update user id → update di posts juga
);

Yang akan kamu pelajari