Fungsi SQL Primary Key dan Cara Mudah Membuatnya

Berikut fungsi SQL primary key sekaligus cara membuatnya.
Bobby Christian
April 6, 2023
16
min read

Mau Belajar

Data Analytics

?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!
DAFTAR FULL PROGRAMCOBA COURSE GRATIS

Overview

Sebuah primary key dalam sebuah tabel berfungsi sebagai tanda pengenal sebuah data. Sebagai tanda pengenal, tentu saja tiap data dalam tabel tersebut harus memiliki nilai yang berbeda-beda. 

Mengutip dari Scalar, sebuah primary key dalam SQL dapat diartikan sebuah tanda pengenal yang unik untuk setiap baris data yang berada di dalam sebuah database. Sebuah database hanya dapat memiliki satu primary key

Syarat sebuah kolom pada database dapat disebut primary key adalah apabila kolom tersebut tidak memiliki NULL values dan seluruh baris dalam kolom tersebut bersifat unik, yang berarti tidak boleh ada nilai yang berulang di dalam kolom tersebut. 

Apa Fungsi Primary Key dalam Database?

Pada artikel tentang constraint sebelumnya, telah dijelaskan bahwa primary key merupakan salah satu bagian dari constraint yang terdapat pada SQL, di mana sebuah primary key menandakan uniknya sebuah data terhadap data lainnya. 

Primary key juga memastikan integritas antar data pada tabel. Fungsi utamanya adalah untuk mempermudah programmer apabila ingin mengambil data. 

Coba bayangkan apabila seluruh data memiliki tanda pengenal yang sama, maka akan sulit bagi programmer untuk menentukan data mana yang relevan dalam pencariannya. 

Apabila kita kaitkan dengan kehidupan sehari-hari, apabila data KTP pada masyarakat Indonesia tercatat dalam database pengguna, maka kita bisa mengatakan bahwa nomor KTP tersebut merupakan sebuah primary key. Sebab kita tahu bahwa tidak mungkin ada dua orang di Indonesia yang memiliki nomor KTP yang sama. 

Misalkan pada database pengguna, terdapat sebuah tabel yang memiliki kolom KTP dan juga kolom order_id yang memuat data ID dari transaksi seorang user. Pada tabel ini, sebuah order_id juga merupakan kolom yang bersifat unik, karena tidak mungkin ada transaksi yang tidak memiliki sebuah ID. 

Karena pada kasus ini sifatnya memiliki 2 kolom yang bisa dijadikan acuan untuk sebuah primary key, maka tabel ini bisa disebut juga sebagai composite primary keys, karena dapat mengandung dua atau lebih primary key dalam tabel yang sama. 

Latihan Cara Membuat SQL Primary Key

Sebuah primary key biasa dituliskan ketika pertama kali membuat sebuah tabel. Kolom yang menjadi sebuah primary key ini dapat memuat tipe data sesuai dengan yang sudah ditentukan di awal. Data yang ditentukan bisa berupa sebuah teks seperti string/varchar atau bisa juga berupa numerik seperti integer/float

Berikut sebuah contoh bagaimana cara menentukan primary key ketika membuat sebuah tabel baru pada SQL:

Pada contoh tersebut, kita membuat sebuah tabel yang bernama criminal_reason, yang memuat data-data kriminal beserta alasan mengapa mereka tertangkap, dan juga ID dari petugas yang menangkapnya. 

Pada contoh tersebut, kita menuliskan PRIMARY KEY pada kolom arrest_id untuk menandakan bahwa kolom tersebut merupakan kolom yang berperan sebagai primary key dalam table criminal_reason

Pada contoh diatas, kita menggunakan kolom arrest_id yang memiliki tipe data teks sebagai sebuah primary key, namun kita juga dapat memberikan primary key pada kolom yang memiliki tipe data numerik. Berikut contoh tabelnya: 

Pada contoh di atas, kita membuat sebuah tabel baru yaitu criminal_info. Tabel tersebut berisikan informasi pribadi dari kriminal itu sendiri, di mana criminal_id merupakan primary key yang tipe datanya berupa numerik. Maka dapat kita simpulkan, bahwa sebuah kolom primary key dalam sebuah tabel dapat berupa teks maupun numerik. 

Sebagaimana sudah disebutkan sebelumnya, sbuah tabel dalam database juga dapat memiliki lebih dari satu primary key, yang disebut juga sebagai composite primary keys. Berikut merupakan contoh sebuah composite primary keys untuk membuat data dari seorang officer yang bertugas untuk menangkap kriminal: 

Pada contoh di atas, kita membuat sebuah tabel bernama officer_info yang berisikan tiga kolom yaitu:

1.) officer_id yang merupakan id dari officer tersebut tempat ia bekerja

2.) officer_name yang mengandung nama dari officer tersebut

3.) license_id yang berisi identitas resmi officer tersebut yang terdaftar pada negara. 

Oleh karena officer_id dan license_id ini keduanya bersifat unik, dimana officer_id digunakan pada wilayah tempat si officer bekerja dan license_id ini digunakan sebagai keperluan pencatatan oleh negara, maka kedua kolom ini akan dibuat menjadi sebuah primary key

Cara untuk membuat kedua kolom ini menjadi sebuah primary key adalah dengan memanggil query PRIMARY KEY(officer_id,license_id) di akhir ketika pembuatan tabel, lalu kita akan melihat pada kolom ketika tabel telah terbentuk, bahwa tabel officer_info memiliki dua buah kolom yang sifatnya adalah primary key

{{COMPONENT_IDENTIFIER}}

Cara Menghapus Primary Key

Sebuah primary key juga dapat dihapus dari tabel. Untuk menghapus primary key tersebut, kita menggunakan perintah ALTER. Kita akan mencoba untuk menghapus primary key yang ada pada tabel officer_info yang telah kita buat pada contoh sebelumnya. 

Mari kita lihat kembali kondisi tabel officer_info yang telah kita buat sebelumnya: 

Apabila kita lihat pada table editor sebelah kiri, kita dapat melihat sebuah bagian yang bernama Index. Di situ kita melihat ada sebuah index yang tertulis PK__officer__. Index ini menandakan primary key pada tabel tersebut, dan index ini juga yang nantinya akan kita hapus dengan menggunakan perintah DROP

Apabila kita tidak dapat melihat index tersebut, kita juga bisa mencarinya dengan menggunakan query berikut ini: 

Apabila kita mengetikan SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, maka kita dapat mengakses database yang ada pada server SQL tersebut, dan mengambil informasi pada tabel CONSTAINT_COLUMN_USAGE

Di sini kita dapat melihat ada kolom yang berisikan nama CONSTRAINT_NAME, lalu kita dapat memilih constraint/primary key dengan meng-copy nama constraint tersebut. 

Kita akan mencoba untuk menghapus primary key pada tabel officer_info yang kita buat sebelumnya, karena itu kita akan meng-copy constraint name. Untuk menghapus primary key tersebut, kita akan menggunakan perintah ALTER dan DROP bersamaan seperti pada contoh berikut ini: 

ALTER TABLE digunakan untuk memodifikasi schema dari sebuah tabel, sedangkan DROP CONSTRAINT digunakan untuk menghapus constraint primary key pada tabel tersebut.

Dengan menjalankan query di atas, maka dapat kita lihat pada table editor di bawah Index sudah hilang. Hal ini dikarenakan query tersebut menghapus semua constraint yang ada pada tabel tersebut, sehingga tabel tersebut tidak lagi memiliki sebuah primary key

Pada tabel officer_info yang kita buat sebelumnya, kita sudah tidak memiliki primary key lagi pada tabel tersebut, padahal sebelumnya kita memiliki dua buah primary key. Karena keduanya memiliki constraint name yang sama, keduanya terhapus ketika kita menggunakan query DROP CONSTRAINT.

Cara Menambahkan SQL Primary Key

Lalu bagaimana cara menambahkan kembali primary key yang sudah dihapus? Kita akan menambahkan kembali primary key pada salah satu kolom dalam tabel, yaitu kolom officer_id

Untuk menambahkan primary key pada tabel yang sudah ada, kita menggunakan query ALTER TABLE untuk memodifikasi schema dari tabel tersebut, lalu kita menggunakan ADD CONSTRAINT untuk menambah sebuah constraint baru. Perhatikan aplikasinya pada contoh berikut ini: 

Seperti pada contoh sebelumnya, kita menggunakan ALTER TABLE <table_name> untuk memodifikasi schema dari tabel tersebut, lalu kita menambahkan perintah modifikasi seperti ADD CONSTRAINT <constraint_name> PRIMARY KEY (<column_name>). 

Di sini kita bisa memberi nama constraint tersebut pada constraint name sesuai yang kita mau, yang nantinya akan muncul pada kolom CONSTRAINT_NAME apabila kita mencari pada tabel CONSTRAINT_COLUMN_USAGE. Sama halnya seperti pada contoh drop primary key sebelumnya. 

Setelah itu, kita menuliskan PRIMARY KEY lalu memberikan nama kolom yang akan diberikan primary key tersebut. Ketika query tersebut dijalankan, kita bisa lihat pada table editor bahwa muncul kembali sebuah index sesuai yang berisi constraint name yang kita tentukan sebelumnya. 

Namun ketika kita menambahkan primary key pada sebuah kolom, kolom tersebut harus dipastikan untuk memenuhi syarat-syarat sebuah primary key: tidak boleh terdapat nilai NULL dan tidak boleh ada nilai berulang pada kolom tersebut. 

Penutup

Sebuah primary key dalam sebuah tabel berfungsi sebagai tanda pengenal sebuah data. Sebagai tanda pengenal, tentu saja tiap data dalam tabel tersebut harus memiliki nilai yang berbeda-beda. 

Pada praktiknya, kita tidak selalu harus memasangkan primary key pada sebuah tabel. Apabila kita tahu bahwa seluruh nilai pada kolom tersebut telah memiliki syarat-syarat sebuah primary key, bisa saja sebuah tabel tidak memiliki constraint primary key walaupun ada kolom yang memenuhi syarat primary key di dalamnya. 

Tujuan kita memasang constraint adalah mencegah masuknya data yang tidak sesuai.

Jika kita telah memiliki sebuah kolom yang unik dan tidak terdapat NULL, ataupun sebuah kolom yang memiliki syarat primary key, kita dapat mencari relasi tabel tersebut dengan tabel lainnya yang terdapat pada database

Di mana pada tabel tujuan, kunci pasangannya disebut sebagai foreign key yang akan dibahas pada artikel terpisah. Pada praktiknya, primary key ini banyak digunakan juga sebagai nilai cari (lookup value) untuk melakukan operasi join antar tabel. 

Bobby Christian
Bobby is a BI Analyst at FnB company. Is an enthusiast in the Data Industry, having some experience in Data Scientist, Data Engineer, and BI Analyst.

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!)

Artikel Lainnya

Mau belajar

Data Analytics

?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!
Menu

Mulai karirmu dalam

Data Analytics

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

Mau Belajar

Data Analytics

?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

DAFTAR FULL PROGRAM

Mau Belajar

Data Analytics

?