Fungsi Contraint Unique dan Penerapannya di Tabel MySQL


Masih membahas tentang constraint, jika kemaren saya membahas tentang constraint NOT NULL maka kali ini saya akan membahas tentang constraint UNIQUE. Constraint ini akan membuat data yang disimpan dalam suatu kolom unik satu dengan data yang lainnya sehingga tidak ada double data di dalam satu kolom. Constraint ini bisa dipasang di satu atau lebih dari satu kolom. Untuk lebih jelasnya akan saya jelaskan pada ilustrasi di bawah:

Saya masuk ke dalam database MySQL dengan menjalankan perintah:

 mysql -u root -p

kemudian saya menggunakan database belajar melalui perintah:

 use belajar;

lalu saya buat database baru bernama belajar_unik dengan constraint UNIQUE melalui perintah:

 CREATE TABLE belajar_unik (
 id INT(2), 
 nama_depan VARCHAR(50) UNIQUE, 
 nama_belakang VARCHAR(50) UNIQUE
 );

dari perintah di atas saya berhasil membuat tabel baru (bernama belajar_unik) dan menambahkan constraint UNIQUE ke dua kolom yaitu kolom nama_depan dan nama_belakang. Untuk lebih jelasnya saya akan coba memasukkan satu buah data yang terdiri dari:
  • ID=1
  • nama_depan=peter
  • nama_belakang=parker
dengan perintah query:

 INSERT belajar_unik (id, nama_depan, nama_belakang) VALUES ('1', 'peter', 'parker');

hasilnya adalah berikut:


dari gambar di atas terlihat bahwa data tadi berhasil disimpan di tabel belajar_unik, kemudian untuk melihat hasilnya bisa menjalankan query:

 SELECT * FROM belajar_unik;

hasilnya:



data berhasil disimpan, sekarang saya akan memasukkan data baru yang terdiri dari:
  • ID = 1
  • nama_depan = peter
  • nama_belakang = peter
dengan perintah query:

 INSERT belajar_unik (id, nama_depan, nama_belakang) VALUES ('1', 'peter', 'peter');

maka hasil INSERT query tersebut:



dari gambar di atas data kedua tidak dapat disimpan karena ada double data nama_depan yang akan dimasukkan dengan data yang telah tersimpan. Misalnya saya memasukkan data berikut:
  • ID=1
  • nama_depan=mary
  • nama_belakang=parker
melalui query:

 INSERT belajar_unik (id, nama_depan, nama_belakang) VALUES ('1', 'mary', 'parker');

hasilnya adalah:


ternyata juga error data tersebut tidak dapat disimpan, dikarenakan ada data parker di kolom nama_belakang yang sudah disimpan sebelumnya. Sekarang saya coba memasukkan data baru lagi yang terdiri dari:
  • ID=1
  • nama_depan=mary
  • nama_belakang=jane
melalui query:

 INSERT belajar_unik (id, nama_depan, nama_belakang) VALUES ('1', 'mary', 'jane');

maka hasilnya:


jika kita lihat data di dalam tabel dengan query dibawah:

 SELECT * FROM belajar_unik;

hasilnya adalah berikut:


dari situ terlihat bahwa ketika nama belakang dan nama depan berbeda maka data dapat disimpan di tabel belajar_unik, karena kolom nama_depan dan nama_belakang memiliki constraint unique.

Comments