tech

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