Fungsi SQL Primary Key dan Cara Mudah Membuatnya

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!

Introduction

How to Guides

Fungsi CONVERT SQL: Panduan Komprehensif bagi Pemula Penggunaan SQL LIMIT, Fungsi, dan Contohnya Apa itu SQL Syntax? Cara dan Contoh Penulisannya SQL: Pengertian, Manfaat, dan Profesi yang Butuh Skill ini Database SQL: Jenis-jenis dan Cara Memilihnya SQL GROUP BY: Fungsi, Contoh, dan Cara Menggunakan Kegunaan SQL Subquery: Jenis, Contoh, dan Cara Pakai ORDER BY SQL untuk Mengurutkan Data dan Contohnya Penggunaan SQL SELECT, Fungsi, dan Contohnya Fungsi SQL Primary Key dan Cara Mudah Membuatnya SQL Query: Fungsi, Istilah Penting, dan Cara Penulisan SQL Case: Panduan Lengkap untuk Pemula dalam Analisis Data Fungsi SQL Index, Contoh, dan Cara Membuatnya Membuat SQL Join Table dan Jenis-jenisnya SQL Constraint: Fungsi, Jenis, Contoh, Cara Membuat Apa itu Not Null di SQL, Manfaat, dan Cara Membuatnya Cara Pakai SQL UPDATE Query untuk Mengubah Data SQL Foreign Key: Jenis-jenis, Manfaat, Cara Membuat SQL Date Format: Cara Menggunakan dan Contohnya Fungsi SQL Between, Syntax, dan Cara Penerapannya Apa itu SQL Injection, Contoh, dan Cara Mencegahnya Fungsi Agregat SQL SUM, SQL COUNT, dan SQL AVG SQL Server Management Studio: Cara Install dan Pakai Cara Membuat SQL Stored Procedure dan Contohnya SQL IF Statement: Fungsi, Cara, dan Contohnya SQL Data Types: Berapa Tipe Data SQL dan Contoh Penulisannya Penggunaan SQL WHERE, Fungsi, dan Contohnya Konsep NOT SQL Operator: Sintaks dan Contohnya Nilai Null SQL vs Nilai Kosong: Kegunaan dan Contoh Operator SQL WHERE NOT: Cara Menggabung dan Contoh SQL Aggregate Functions: Cara dan Contoh Fungsi Agregate Belajar SQL HAVING Clause, Fungsi, dan Contohnya SQL Insert Into: Cara Pakai dan Contohnya SQL IN Operator: Fungsi, Contoh, dan Cara Pakai Mengenal SQL Union Operator, Cara Pakai, dan Contoh SQL Command: Jenis-jenis dan Cara Penulisannya Views SQL: Definisi, Jenis, dan Cara Membuatnya Tutorial SQL Coalesce untuk Handle Null Values dan Contohnya SQL LIKE & NOT LIKE Operator: Fungsi, Syntax, Contoh SQL Select Distinct: Sintaks, Cara Pakai, dan Contoh Mengenal Fungsi CONCAT SQL dalam Analisis Data dan Contohnya Cara Menggabungkan 3 Table di SQL Cara Simpel Data Cleaning di SQL dan Contohnya Tutorial SQL Delete: Cara Menghapus Data dengan Efektif Cara Pakai Truncate SQL, Contoh, dan Risiko Belajar SQL ROW NUMBER: Fungsi, Cara, dan Contoh Belajar SQL MERGE: Fungsi, Cara, dan Contoh Belajar SQL PARTITION BY: Fungsi, Cara, dan Contoh Belajar SQL Schema dari Nol: Fungsi, Sintaks, dan Contoh Belajar SQL RANK: Fungsi, Cara, dan Contoh Kasus

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.

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