Overview
Dalam penulisan sebuah query SQL, dengan menggunakan constraint, kita dapat menghindari kesalahan penulisan data, sehingga konsistensi dan integritas dari sebuah data dapat terjaga dengan baik untuk digunakan pada proses selanjutnya. Data pun akan lebih akurat sehingga programmer tidak perlu melakukan perbaikan ataupun manipulasi data ketika ada data yang tidak diinginkan pada database.
Dalam melakukan sebuah pengisian data dalam sebuah tabel di database, kita sebagai programmer menginginkan data yang akurat. Yang paling ingin dihindari yaitu ketidakkonsistenan atau terjadinya sebuah kegagalan saat melakukan operasi pengisian data dalam tabel tersebut.
Konsistensi data dapat diraih dengan menanamkan sebuah rule atau aturan pada tabel tersebut. Dalam SQL, aturan tersebut dinamakan constraint.
Cara Kerja SQL Constraint
Dalam SQL kita mungkin sering atau pernah mendengar istilah yang bernama constraint atau batasan. Tujuan penggunaan constraint tersebut adalah untuk memastikan integritas sebuah data yang akan disimpan pada sebuah tabel dengan cara membatasi jenis data yang akan masuk.
Cara kerja sebuah constraint atau batasan adalah dengan mendefinisikan sebuah aturan constraint pada level tabel atau pada umumnya ditentukan pada sebuah kolom. Dengan menggunakan fungsi constraint ini, kita dapat menjaga konsistensi data dan validitas dari data itu sendiri.
Cara Membuat SQL Constraint
Constraint biasa digunakan ketika melakukan pembuatan tabel baru (query create table) dan pembaharuan sebuah kolom (query alter table). Constraint umumnya jarang ditentukan ketika tabel sudah terisi data, oleh karena itu kita sebagai seorang programmer perlu memastikan dan menentukan constraint tersebut saat pembentukan tabel pertama kali.
Untuk penggunaan constraint pada saat pembuatan tabel baru dan pembaharuan tabel dapat dilihat pada contoh berikut ini:
Constraint pada proses pembuatan tabel
Catatan penting: perlu diketahui bahwa syntax tersebut merupakan syntax dari database SQL server, dan mungkin saja jenis database lain memiliki syntax yang berbeda.
Seperti terlihat pada screenshot di atas, tampak query untuk menambahkan constraint atau batasan kolom pada saat melakukan query create table. Hanya perlu menambahkan query constraint setelah data_type maka constraint akan berlaku pada kolom tersebut.
Constraint pada tabel yang sudah ada
Ketika kita membuat sebuah constraint pada tabel yang sudah ada, kita memodifikasi sebuah tabel. Untuk memodifikasi sebuah tabel, kita menggunakan query ALTER TABLE lalu diikuti dengan perintah yang kita inginkan.
Karena kita membahas untuk menambahkan sebuah constraint baru, maka setelah perintah ALTER TABLE, kita akan menambahkan ADD CONSTRAINT, diikuti dengan column_name dan data_type constraint.
Berikut contoh cara penulisan query dengan menggunakan ALTER TABLE:
Ketika kita menjalankan query tersebut, maka aturan constraint akan ditambahkan kepada kolom dalam tabel tersebut. Perhatikan pada contoh di atas, data_type merupakan jenis constraint yang dapat ditambahkan.
Ada beberapa jenis constraint yang dapat ditambahkan, beberapa di antaranya: NOT NULL constraint, PRIMARY KEY constraint, FOREIGN KEY constraint, UNIQUE constraint, CHECK constraint, dan DEFAULT constraint.
Kita akan membahas jenis constraint ini pada subtopik selanjutnya.
Jenis-jenis SQL Constraint
Berikut adalah beberapa jenis constraint yang dapat digunakan:
#1 NOT NULL constraint
Constraint atau batasan ini digunakan untuk memastikan bahwa sebuah kolom tidak bisa menerima sebuah nilai NULL. Nilai NULL sendiri merupakan sebuah data yang tidak memiliki nilai dan hal ini dapat membuat data yang tidak relevan atau tidak konsisten.
Dengan menggunakan constraint NOT NULL ini, kita dapat menghindari jenis data yang tidak relevan tersebut. Dikarenakan jika user memasukan data ke dalam kolom yang mempunyai aturan NOT NULL constraint, maka database akan menggagalkan operasi tersebut.
Berikut adalah cara untuk menggunakan constraint ini pada saat membuat tabel baru ataupun memodifikasi tabel yang sudah ada:
#2 PRIMARY KEY constraint
Constraint atau batasan ini mungkin yang paling sering kita dengar dalam menggunakan SQL. PRIMARY KEY sendiri digunakan untuk mengidentifikasi setiap baris pada tabel. Untuk kegunaan dan fungsi dari primary key ini akan lebih lanjut dibahas pada artikel terpisah.
Jenis constraint ini juga secara tidak langsung menggunakan kombinasi NOT NULL dan UNIQUE dikarenakan kolom yang menggunakan constraint ini tidak boleh NULL dan harus berbeda antar data. Sebuah tabel dapat memiliki lebih dari satu primary key.
Berikut adalah cara untuk menggunakan constraint ini pada saat pembuatan tabel baru ataupun memodifikasi tabel yang sudah ada:
Catatan penting: perlu diketahui bahwa syntax tersebut merupakan syntax dari database SQL server, dan memungkinkan jenis database lain memiliki syntax yang berbeda.
#3 FOREIGN KEY constraint
Sama dengan PRIMARY KEY, jenis constraint ini adalah salah satu yang mungkin kita sering dengar. Constraint ini digunakan untuk membuat hubungan antar tabel dengan cara mereferensikan primary key yang terdapat pada tabel lain.
Untuk kegunaan dan fungsi dari foreign key ini juga akan lebih lanjut dibahas pada artikel terpisah: SQL - FOREIGN KEY.
Berikut adalah cara untuk menggunakan constraint ini pada saat pembuatan tabel baru ataupun memodifikasi tabel yang sudah ada:
Khusus constraint foreign key, kita perlu menambahkan query REFERENCE table_name, yaitu primary key dari tabel referensi yang ingin dihubungkan dengan tabel yang mengandung foreign key ini.
#4 UNIQUE constraint
Jenis constraint atau batasan ini digunakan untuk memastikan semua nilai pada kolom tersebut unik atau tidak sama. Dengan menggunakan aturan ini, kita dapat memastikan bahwa kolom tersebut tidak memiliki duplikasi dan konsisten.
Jika ada input data yang baru yang nilainya telah ada dalam database, maka database akan menggagalkan operasi tersebut. Berikut adalah cara untuk menggunakan constraint ini pada saat pembuatan tabel baru ataupun memodifikasi tabel yang sudah ada:
#5 CHECK constraint
Jenis constraint atau batasan ini digunakan untuk pengecekan sebuah data ketika suatu data baru akan diinputkan. Jika programmer memasukan sebuah nilai yang tidak memenuhi kondisi dari constraint CHECK ini, seperti tipe data yang berbeda ataupun jumlah karakter yang tidak sesuai, maka database akan menggagalkan operasi tersebut.
{{COMPONENT_IDENTIFIER}}
Berikut adalah cara untuk menggunakan constraint ini pada saat pembuatan tabel baru ataupun memodifikasi tabel yang sudah ada pada satu atau lebih dari satu kolom:
Constraint CHECK pada satu kolom:
Constraint CHECK pada beberapa kolom:
Ketika menambahkan constraint CHECK pada beberapa kolom, kita perlu menuliskan nama kolom untuk menentukan kolom mana yang mau diberikan constraint dan menambahkan variabel baru sebagai parameter untuk kolom-kolom tersebut.
#6 DEFAULT constraint
Jenis constraint atau batasan ini digunakan untuk menuliskan nilai default pada sebuah kolom. Ketika menginput data, apabila programmer tidak menuliskan input untuk sebuah kolom yang memiliki constraint DEFAULT, maka secara otomatis nilai default yang sudah ditentukan akan diisikan pada kolom tersebut.
Constraint ini didefinisikan pada tingkat kolom. Berikut adalah cara untuk menggunakan constraint ini pada saat pembuatan tabel baru ataupun memodifikasi tabel yang sudah ada pada satu atau lebih dari satu kolom:
Pada contoh di atas, kita menambahkan nilai default ‘Jakarta’ apabila tidak ada inputan dalam kolom productionCity. Namun apabila ada input yang diberikan pada kolom tersebut, maka nilai pada kolom tersebut sesuai dengan inputan yang diberikan.
Penutup
Dalam penulisan sebuah query SQL, dengan menggunakan constraint, kita dapat menghindari kesalahan penulisan data, sehingga konsistensi dan integritas dari sebuah data dapat terjaga dengan baik untuk digunakan pada proses selanjutnya.
Data pun akan lebih akurat sehingga programmer tidak perlu melakukan perbaikan ataupun manipulasi data ketika ada data yang tidak diinginkan pada database.
Selain itu, performa dari database juga dapat ditingkatkan karena dengan adanya constraint, maka jumlah kesalahan yang mungkin terjadi dapat berkurang. Salah satu keuntungan lainnya adalah dapat mencegah pengguna lain untuk memasukkan data yang tidak sah pada kolom tertentu.
Karena dalam aplikasinya, belum tentu hanya satu orang yang menggunakan database tersebut. Banyak pengguna yang bisa melakukan query ataupun memasukkan data pada database, baik otomatis maupun manual.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)