{"id":60861,"date":"2026-01-23T09:17:20","date_gmt":"2026-01-23T02:17:20","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=60861"},"modified":"2026-02-13T17:16:22","modified_gmt":"2026-02-13T10:16:22","slug":"belajar-sql-database-9","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-sql-database-9\/","title":{"rendered":"Belajar SQL Database Bagian 9 \u2013 Mengenal Constraint di MySQL"},"content":{"rendered":"\n<p>Pada seri belajar SQL database <strong><a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-sql-database-bagian-8\/\" target=\"_blank\" rel=\"noopener\" title=\"\">bagian 8<\/a><\/strong>, kita telah membahas <em>subquery<\/em>, yaitu <em>query <\/em>di dalam <em>query <\/em>yang digunakan untuk mengambil data dengan kebutuhan yang lebih kompleks. Memasuki pembahasan yang lebih mendalam, kita akan mengenal <em>constraint <\/em>di MySQL, yaitu aturan yang digunakan untuk menjaga validitas dan konsistensi data di dalam database.<\/p>\n\n\n\n<p>Constraint memiliki peran penting karena dapat mencegah data yang tidak valid masuk ke dalam tabel, baik secara sengaja maupun tidak. <\/p>\n\n\n\n<p>Pada belajar SQL database bagian 9 ini, kita akan mempelajari pengertian <em>constraint<\/em>, jenis-jenis <em>constraint<\/em> yang umum digunakan di MySQL, serta contoh penerapannya agar struktur database lebih rapi, aman, dan terjaga integritas datanya.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Apa Itu Constraint di MySQL?<\/strong><\/h2>\n\n\n\n<p><em>Constraint <\/em>adalah aturan yang diterapkan pada kolom atau tabel untuk membatasi jenis data yang boleh disimpan. Dengan <em>constraint<\/em>, database dapat secara otomatis menolak data yang tidak sesuai aturan.<\/p>\n\n\n\n<p>Beberapa <em>constraint<\/em> yang umum digunakan di MySQL antara lain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NOT NULL<\/li>\n\n\n\n<li>UNIQUE<\/li>\n\n\n\n<li>DEFAULT<\/li>\n\n\n\n<li>CHECK<\/li>\n\n\n\n<li>FOREIGN KEY<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Skema Database Yang Digunakan<\/h2>\n\n\n\n<p>Dalam tutorial belajar SQL database tentang <em>constraint<\/em> kali ini, kita akan menggunakan skema database seperti berikut: <\/p>\n\n\n\n<p><strong>Tabel siswa:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26.png\"><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"189\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26.png\" alt=\"contoh skema database tabel siswa - Belajar SQL Database Bagian 9\" class=\"wp-image-60862\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26.png 882w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-300x64.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-768x165.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-370x79.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-270x58.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-570x122.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-26-740x159.png 740w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Tabel nilai:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27.png\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"191\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27.png\" alt=\"contoh skema database tabel nilai\" class=\"wp-image-60863\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27.png 888w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-300x65.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-768x165.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-370x80.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-270x58.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-570x123.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-27-740x159.png 740w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><\/a><\/figure>\n\n\n\n<p>Dalam gambar skema diatas, kita akan menggunakan beberapa tabel dalam sistem input nilai siswa. Untuk proses pembuatan database beserta contohnya, kita akan masuk ke pembahasan jenis <em>constraint <\/em>berikut.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jenis Constraint<\/h2>\n\n\n\n<p>Berikut adalah beberapa jenis <em>constraint <\/em>yang perlu Anda ketahui:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Constraint NOT NULL<\/h3>\n\n\n\n<p>Constraint <strong>NOT NULL<\/strong> digunakan untuk memastikan sebuah kolom <strong>tidak boleh bernilai kosong (NULL)<\/strong>.<\/p>\n\n\n\n<p>Contoh: Menambahkan NOT NULL pada kolom <code>nama<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE siswa (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    nama VARCHAR(100) NOT NULL,\n    umur INT,\n    email VARCHAR(100) UNIQUE\n);\n<\/code><\/pre>\n\n\n\n<p>Dengan aturan ini, jika kita mencoba memasukkan data tanpa nilai <code>nama<\/code>, MySQL akan menolak <em>query <\/em>tersebut.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Contoh Insert Valid<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO siswa (nama, umur, email)\nVALUES ('Andi', 15, 'andi@email.com');<\/code><\/pre>\n\n\n\n<p>Berikut inser validnya:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"203\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-1024x203.png\" alt=\"Hasil insert query valid\" class=\"wp-image-60980\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-1024x203.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-300x59.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-768x152.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-370x73.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-270x53.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-570x113.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28-740x147.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-28.png 1121w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Contoh Insert Tidak Valid<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO siswa (umur, email)\nVALUES (16, 'budi@email.com');<\/code><\/pre>\n\n\n\n<p>Jika kita mencoba memasukkan data tanpa <code>nama<\/code>, MySQL akan menolak query tersebut, berikut pesan errornya apabila memasukkan data tidak valid:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"97\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-1024x97.png\" alt=\"Pesan error yang muncul jika menambahkan data tidak valid\" class=\"wp-image-60982\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-1024x97.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-300x28.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-768x73.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-370x35.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-270x26.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-570x54.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30-740x70.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-30.png 1117w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2. Constraint UNIQUE<\/h3>\n\n\n\n<p>Constraint <strong>UNIQUE<\/strong> memastikan bahwa nilai dalam sebuah kolom <strong>tidak boleh sama<\/strong> dengan baris lainnya. <\/p>\n\n\n\n<p>Contoh: Membuat kolom <code>email<\/code> unik<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE siswa (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    nama VARCHAR(100) NOT NULL,\n    umur INT,\n    email VARCHAR(100) UNIQUE\n);<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Contoh Insert Valid:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO siswa (nama, umur, email)\nVALUES ('Andi', 15, 'andi@email.com');<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Contoh Insert Tidak Valid:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO siswa (nama, umur, email)\nVALUES ('Budi', 16, 'andi@email.com');<\/code><\/pre>\n\n\n\n<p>Query insert kedua akan gagal karena nilai email &#8216;andi@email.com&#8217; sudah tersimpan sebelumnya. Constraint UNIQUE mencegah adanya data dengan nilai email yang sama agar tidak terjadi duplikasi data. Berikut pesan error yang muncul apabila Anda mencoba memasukkan data tidak valid:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"88\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-1024x88.png\" alt=\"Pesan error yang muncul karena memasukkan data yang sama\" class=\"wp-image-60984\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-1024x88.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-300x26.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-768x66.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-370x32.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-270x23.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-570x49.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32-740x64.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-32.png 1042w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Constraint DEFAULT<\/h3>\n\n\n\n<p>Constraint <strong>DEFAULT<\/strong> digunakan untuk memberikan <strong>nilai awal otomatis<\/strong> jika data tidak diisi saat proses <em>insert<\/em>.<\/p>\n\n\n\n<p>Contoh: DEFAULT pada kolom <code>nilai<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE nilai (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    siswa_id INT,\n    mata_pelajaran VARCHAR(100),\n    nilai INT DEFAULT 0\n);<\/code><\/pre>\n\n\n\n<p>Jika kita tidak memasukkan nilai:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO nilai (siswa_id, mata_pelajaran)\nVALUES (1, 'Matematika');<\/code><\/pre>\n\n\n\n<p>Maka kolom <code>nilai<\/code> akan otomatis bernilai <code>0<\/code>. Berikut isi table nilai jika Anda mencoba memasukkan query diatas:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"216\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-1024x216.png\" alt=\"Contoh hasil otomatis yang muncul sesuai data yang ditambahkan\" class=\"wp-image-60985\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-1024x216.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-300x63.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-768x162.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-370x78.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-270x57.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-570x120.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33-740x156.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-33.png 1026w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. Constraint CHECK<\/h3>\n\n\n\n<p>Constraint <strong>CHECK<\/strong> digunakan untuk membatasi nilai berdasarkan kondisi tertentu. Sebagai informasi, CHECK constraint berjalan secara efektif pada MySQL versi 8 ke atas.<\/p>\n\n\n\n<p>Contoh: Memastikan nilai siswa antara 0 sampai 100.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE nilai (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    siswa_id INT,\n    mata_pelajaran VARCHAR(100),\n    nilai INT CHECK (nilai BETWEEN 0 AND 100)\n);<\/code><\/pre>\n\n\n\n<p>Jika kita coba masukkan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO nilai (siswa_id, mata_pelajaran, nilai)\nVALUES (1, 'Bahasa Inggris', 120);<\/code><\/pre>\n\n\n\n<p>Maka query akan <strong>gagal<\/strong> karena nilai <code>120<\/code> tidak memenuhi aturan <code>CHECK (nilai BETWEEN 0 AND 100)<\/code>.<\/p>\n\n\n\n<p><strong>Catatan:<\/strong><br \/>Constraint <code>CHECK<\/code> hanya benar-benar ditegakkan pada MySQL versi 8.0.16 ke atas.<br \/>Pada MariaDB dan MySQL versi lama, CHECK tidak divalidasi, sehingga data yang melanggar aturan tetap bisa masuk tanpa error.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Constraint FOREIGN KEY<\/h3>\n\n\n\n<p>Constraint <strong>FOREIGN KEY<\/strong> memastikan relasi antar tabel tetap valid, yaitu nilai <code>siswa_id<\/code> harus merujuk ke data yang ada di tabel <code>siswa<\/code>.<\/p>\n\n\n\n<p>Contoh Struktur Tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE nilai (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    siswa_id INT,\n    mata_pelajaran VARCHAR(100),\n    nilai INT,\n    FOREIGN KEY (siswa_id) REFERENCES siswa(id)\n);<\/code><\/pre>\n\n\n\n<p>Jika kita mencoba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO nilai (siswa_id, mata_pelajaran, nilai)\nVALUES (999, 'Biologi', 80);<\/code><\/pre>\n\n\n\n<p><em>Query <\/em>akan <strong>gagal<\/strong>, karena tidak ada siswa dengan <code>id = 999<\/code> di tabel <code>siswa<\/code>. Berikut pesan error yang muncul apabila mencoba menambahkan query diatas:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"82\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-1024x82.png\" alt=\"Pesan error yang muncul dikarenakan nilai siswa_id yang dimasukkan ke tabel nilai tidak ditemukan pada kolom id di tabel siswa, sehingga melanggar aturan FOREIGN KEY.\" class=\"wp-image-60992\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-1024x82.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-300x24.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-768x61.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-1536x122.png 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-370x29.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-270x22.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-570x45.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34-740x59.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/image-34.png 1694w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Contoh Penggunaan Constraint dalam Satu Tabel<\/h2>\n\n\n\n<p>Setelah memahami masing-masing jenis <em>constraint<\/em>, selanjutnya kita akan melihat contoh penggunaan beberapa constraint sekaligus pada tabel yang saling berelasi, yaitu tabel <code>siswa<\/code> dan <code>nilai<\/code><\/p>\n\n\n\n<p><strong>Tabel Siswa<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE siswa (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  nama VARCHAR(100) NOT NULL,\n  umur INT CHECK (umur &gt;= 10),\n  email VARCHAR(100) NOT NULL UNIQUE\n);<\/code><\/pre>\n\n\n\n<p>Dengan struktur di atas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kolom nama wajib diisi (NOT NULL)<\/li>\n\n\n\n<li>Kolom email harus unik dan tidak boleh kosong (UNIQUE, NOT NULL)<\/li>\n\n\n\n<li>Kolom umur hanya menerima nilai 10 tahun ke atas (CHECK)<\/li>\n<\/ul>\n\n\n\n<p><strong>Tabel Nilai<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE nilai (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  siswa_id INT NOT NULL,\n  mata_pelajaran VARCHAR(100) NOT NULL,\n  nilai INT DEFAULT 0 CHECK (nilai BETWEEN 0 AND 100),\n  FOREIGN KEY (siswa_id) REFERENCES siswa(id)\n);<\/code><\/pre>\n\n\n\n<p>Dengan struktur di atas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kolom <strong>siswa_id<\/strong> wajib diisi dan harus merujuk ke tabel <code>siswa<\/code> (FOREIGN KEY)<\/li>\n\n\n\n<li>Kolom <strong>mata_pelajaran<\/strong> tidak boleh kosong (NOT NULL)<\/li>\n\n\n\n<li>Kolom <strong>nilai<\/strong> memiliki nilai default 0 (DEFAULT)<\/li>\n\n\n\n<li>Nilai hanya boleh berada di rentang 0 sampai 100 (CHECK)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Kenapa Constraint Penting?<\/h2>\n\n\n\n<p>Ada beberapa alasan kenapa <em>constraint <\/em>untuk aplikasi anda, seperti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mencegah data tidak valid<\/li>\n\n\n\n<li>Menjaga konsistensi database<\/li>\n\n\n\n<li>Mengurangi kesalahan input dari aplikasi<\/li>\n\n\n\n<li>Membuat database lebih aman dan rapi<\/li>\n<\/ul>\n\n\n\n<p>Constraint sangat disarankan digunakan terutama pada database yang digunakan untuk aplikasi atau website production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p>Constraint di MySQL berfungsi sebagai aturan dan validasi data agar database tetap konsisten dan terstruktur dengan baik. Beberapa constraint penting yang sering digunakan antara lain <strong>NOT NULL, UNIQUE, DEFAULT, CHECK dan FOREIGN KEY<\/strong>.<\/p>\n\n\n\n<p>Demikian tutorial belajar SQL Database bagian 9 tentang Constraint atau aturan dan validasi data di MySQL. Terus ikuti seri belajar SQL Database dari Rumahweb untuk meningkatkan kemampuan Anda dalam mengelola database. Semoga bermanfaat!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada seri belajar SQL database bagian 8, kita telah membahas subquery, yaitu query di dalam query yang digunakan untuk mengambil data dengan kebutuhan yang lebih kompleks. Memasuki pembahasan yang lebih mendalam, kita akan mengenal constraint di MySQL, yaitu aturan yang digunakan untuk menjaga validitas dan konsistensi data di dalam database. Constraint memiliki peran penting karena [&hellip;]<\/p>\n","protected":false},"author":358,"featured_media":60971,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2294],"tags":[2133,135,134,1440],"class_list":{"0":"post-60861","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-database","8":"tag-belajar-sql","9":"tag-database","10":"tag-mysql","11":"tag-sql"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Banner-Belajar-SQL-Database-Bagian-9.webp","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-fPD","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/60861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/358"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=60861"}],"version-history":[{"count":16,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/60861\/revisions"}],"predecessor-version":[{"id":61708,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/60861\/revisions\/61708"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/60971"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=60861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=60861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=60861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}