Table of Content
SQL Constraint
used to specify rules for the data in a table yg artinya untuk melakukan spesifikasi rules data seperti:
- Not Null
- Unique
- Primary Key
- Foreign Key
- Check
- Default
- Create Index
- Dan Lain lain
Note: Constraint diterapkan setelah datatype ya
Not Null
Case:
CREATE TABLE pengguna (
id INT NOT NULL,
nama_depan VARCHAR(128) NOT NULL,
nama_belakang VARCHAR(128) NOT NULL,
nama_lengkap VARCHAR(128) NOT NULL,
umur INT NOT NULL
);Berfungsi untuk tidak memperbolehkan kolom nya kosong. Harus terisi…
Unique
Case:
CREATE TABLE pengguna (
id INT NOT NULL,
nama_depan VARCHAR(128) NOT NULL,
nama_belakang VARCHAR(128) NOT NULL,
nama_lengkap VARCHAR(128) NOT NULL,
email varchar(50) NOT NULL UNIQUE,
umur INT NOT NULL
);Menjaga agar data tidak boleh ada yg sama dan bersifat unik.
Primary Key
Digunakan untuk mengidentifikasi data unik. Harus unik dan tidak boleh NULL.
Setiap table hanya bisa memiliki 1 Primary Key.
Case:
CREATE TABLE pengguna (
id INT NOT NULL,
nama_depan VARCHAR(128) NOT NULL,
nama_belakang VARCHAR(128) NOT NULL,
nama_lengkap VARCHAR(128) NOT NULL,
email varchar(50) NOT NULL UNIQUE,
umur INT NOT NULL,
PRIMARY KEY (id)
);Taruh paling bawah gapapa.
Foreign Key
diterapkan untuk mencegah tindakan-tindakan tertentu yang bisa merusak relation table atau koneksi antara dua tabel. Contoh tindakan yang dicegah:
- Drop sebuah baris dari tabel induk (parent table) jika masih ada baris di tabel anak (child table) yang mengacu padanya.
- Create data ke tabel anak yang merujuk ke nilai kunci utama (primary key) yang tidak ada di tabel induk.
Case:
Parent:
CREATE TABLE pengguna (
id INT NOT NULL,
nama_depan VARCHAR(128) NOT NULL,
nama_belakang VARCHAR(128) NOT NULL,
nama_lengkap VARCHAR(128) NOT NULL,
email varchar(50) NOT NULL UNIQUE,
umur INT NOT NULL,
PRIMARY KEY (id)
);Child
CREATE TABLE nomor_pengguna (
id INT NOT NULL,
user_id INT NOT NULL,
nomor VARCHAR(50) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES pengguna(id)
);Buat Foreign Key untuk parent yg sudah dibuat.
Auto Increment
Case:
CREATE TABLE pengguna (
id INT PRIMARY KEY AUTO_INCREMENT,
nama_depan VARCHAR(128),
nama_belakang VARCHAR(128),
nama_lengkap VARCHAR(256)
);Gimana kalau sudah ada 100 data yg dihapus? pasti data selanjutnya id nya menjadi 101? untuk reset bisa pakai kode dibawah:
ALTER TABLE pengguna AUTO_INCREMENT=1;Default
Case:
CREATE TABLE pengguna (
id INT PRIMARY KEY AUTO_INCREMENT,
nama_depan VARCHAR(128) DEFAULT "Jhon",
nama_belakang VARCHAR(128) DEFAULT "Doe",
nama_lengkap VARCHAR(256),
umur INT
);Data default ditetapkan diawal.
Date: 19-10-2025