Bidang, yang berisi data unik dalam tabel, disebut KUNCI UTAMA (PK). Artinya, field PRIMARY KEY harus berisi data unik dalam tabel.
- Bidang PRIMARY KEY berisi nilai pada setiap baris.
- Bidang KUNCI UTAMA tidak boleh berisi string kosong.
- Data KUNCI UTAMA tidak pernah berubah dari waktu ke waktu.
- Sebuah tabel hanya dapat terdiri dari satu PRIMARY KEY, yang dapat terdiri dari satu atau beberapa bidang dalam tabel. Ketika lebih dari satu kolom digunakan sebagai PRIMARY KEY tabel, mereka dikenal sebagai Composite key dalam tabel.
- Tidak akan ada catatan duplikat untuk KUNCI UTAMA.
- Jika bidang ditetapkan sebagai KUNCI UTAMA dalam tabel, bidang tersebut tidak boleh berisi nilai bidang yang sama lebih dari satu kali dalam tabel.
Misalnya, kami memiliki tabel Siswa di database. Tabel berisi 4 bidang Student_Id, Student_Name, Phone_Number, dan Email. Student_Id dan Email adalah PRIMARY KEY pada tabel Student. Hanya ada satu KUNCI UTAMA tetapi dapat memiliki satu atau beberapa bidang dalam tabel, seperti yang kami katakan di atas. Data satu siswa sudah ada di tabel, tetapi siswa yang sama menambahkan datanya lagi dengan ID email yang sama. Saat siswa memasukkan detail, sebuah pop-up akan menampilkan pesan “Email sudah ada”. Ini ditampilkan karena Email sudah ada di tabel, dan bidang email adalah KUNCI UTAMA, dan KUNCI UTAMA tidak boleh berisi nilai duplikat.
Buat PRIMARY KEY pada SQL TABLE
Kueri SQL berikut membuat PRIMARY KEY pada bidang Employee_Id saat tabel 'Employee' dibuat.
CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );
Kueri di atas telah mendefinisikan PRIMARY KEY ke bidang Employee_Id. Kita dapat menyebutkan nama kunci setelah nama field dan tipe data. Query di atas adalah salah satu cara untuk membuat Employee_Id sebagai PRIMARY KEY.
Untuk memeriksa apakah PRIMARY KEY kita berhasil didefinisikan atau tidak, kita dapat menggunakan perintah DESC diikuti dengan nama tabel Employee.
Karyawan DESC;
Fields | Jenis | Nol | Kunci | Bawaan | Ekstra |
Id_Karyawan | Int(11) | TIDAK | PRI | NULL | |
Nama_Karyawan | Varchar(40) | TIDAK | NULL | ||
Gaji | Int(11) | TIDAK | NULL | ||
Departemen | Varchar(40) | YA | NULL | ||
Kota | Varchar(40) | YA | NULL |
Bidang Kunci PRI disebutkan di depan baris Employee_Id, yang berarti Employee_Id berhasil ditetapkan sebagai PRIMARY KEY.
Keuntungan menggunakan PRIMARY KEY dalam tabel:
- Akses Cepat ke data dari tabel.
- Nilai duplikat tidak diperbolehkan di bidang PRIMARY KEY.
Cara lain untuk membuat KUNCI UTAMA
CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );
Dalam query yang sama seperti di atas, kita harus menyebutkan NOT NULL di depan nama field, yang dibuat sebagai PRIMARY KEY, dan pada akhirnya, kita harus menulis kata kunci PRIMARY KEY dan nama Field dalam kurung seperti di atas kueri.
Buat batasan PRIMARY KEY pada bidang saat tabel sudah ada
Gunakan kueri berikut:
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
Menggunakan kueri ALTER TABLE untuk mendefinisikan PRIMARY KEY, bidang PRIMARY KEY telah dideklarasikan dengan batasan NOT NULL.
SQL PRIMARY KEY pada Beberapa Kolom
Kueri SQL berikut membuat KUNCI UTAMA di lebih dari satu kolom saat Tabel 'Siswa' dibuat.
CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));
Hanya satu PRIMARY KEY yang dibuat pada contoh di Student_Id dan Email.
Untuk memeriksa apakah PRIMARY KEY kita berhasil didefinisikan atau tidak, kita dapat menggunakan perintah DESC diikuti dengan nama tabel Student.
DESC Student;
Fields | Jenis | Nol | Kunci | Bawaan | Ekstra |
Id_Siswa | Int(11) | TIDAK | PRI | NULL | |
Nama_Siswa | Varchar(40) | YA | NULL | ||
Departemen | Varchar(40) | YA | NULL | ||
Nomor_Telepon | Int(10) | YA | NULL | ||
Varchar(100) | TIDAK | PRI | NULL |
Seperti yang bisa kita lihat di depan baris Student_Id dan Email, field Key PRI disebutkan, yang berarti Student_Id dan Email berhasil ditetapkan sebagai PRIMARY KEY.
Sekarang kita akan mengeksekusi SHOW CREATE TABLE diikuti dengan nama tabel Student, yang akan menggambarkan tabel mahasiswa.
SHOW CREATE TABLE Student;
Pada output di atas, kita dapat melihat bahwa hanya satu PRIMARY KEY yang dibuat, dan dalam kurung, nama bidang disebutkan, yang dibuat sebagai PRIMARY KEY saat membuat tabel.
Misalkan kita ingin menghapus batasan PRIMARY KEY dari tabel siswa. Kami akan menggunakan kueri berikut untuk menghilangkan batasan PRIMARY KEY:
ALTER TABLE Student DROP PRIMARY KEY;
Untuk mengecek apakah PRIMARY KEY kita berhasil dihapus atau tidak, kita akan menggunakan perintah DESC diikuti dengan nama tabel Student.
DESC Student;
Fields | Jenis | Nol | Kunci | Bawaan | Ekstra |
Id_Siswa | Int(11) | TIDAK | NULL | ||
Nama_Siswa | Varchar(40) | YA | NULL | ||
Departemen | Varchar(40) | YA | NULL | ||
Nomor_Telepon | Int(10) | YA | NULL | ||
Varchar(100) | TIDAK | NULL |