Apa itu primary key pada mysql?

Masih dalam pembahasan tentang tutorial mysql, kali ini rumah code akan membahas tentang tutorial cara membuat primari key dan foreign key pada MySQL. Pada tutorial ini rumah code akan menggunakan contoh database penjualan sebagai implementasi dari database relasional.

Sebelum masuk ke pembahasan utama rumah code akan menerangkan tentang apa itu primary key dan foreign key.

Primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Nilai dari primary key adalah unik.

Foreign key adalah suatu nilai dalam basis data yang berfungsi sebagai kunci tamu dimana kunci ini digunakan sebagai relasi (database relasional) antara dua atau lebih tabel.

Dengan penjelasan di atas tentang Primary key dan foreign key mudah mudahan dapat membantu memahami teman teman yang masih bingung tentang apa itu primary dan foreign key. Sekarang kita akan masuk ke pembahasan utama yaitu query (My)sql tentang pembuatan prmary dan foreing key

Baca Juga : Belajar query sql join pada MySQL

Ada dua cara pembuatan primary key dan foreign key pada MySQL. Yaitu pada saat membuat tabel dengan query sql create tabel atau dengan menambahkan nya kemudian dengan menggunakan query sql alter tabel. Sekarang simak contoh query sql pada database penjualan di bawah ini

CREATE DATABASE penjualan;

CREATE TABLE `transaksi` (
  `trx_id` double NOT NULL,
  `user_id` varchar(20) NOT NULL,
  PRIMARY KEY (trx_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `transaksid` (
  `trxD_id` double NOT NULL,
  `trx_id` double NOT NULL,
  `barang_id` double NOT NULL,
  `trx_qty` int(11) DEFAULT NULL,
  PRIMARY KEY (trxD_id),
  FOREIGN KEY (trx_id) REFERENCES transaksi(trx_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Query mysql di atas adalah contoh pembuatan primary key dan foreign key pada saat  membuat tabel. Sekarang simaklah query di bawah ini

CREATE DATABASE penjualan;

CREATE TABLE `transaksi` (
  `trx_id` double NOT NULL,
  `user_id` varchar(20) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `transaksid` (
  `trxD_id` double NOT NULL,
  `trx_id` double NOT NULL,
  `barang_id` double NOT NULL,
  `trx_qty` int(11) DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


ALTER TABLE 'penjualan'.'transaksi'
ADD PRIMARY KEY ('trx_id');

ALTER TABLE  'penjualan'.'transaksid'
ADD PRIMARY KEY ('trxD_id'), 
ADD FOREIGN KEY ('trx_id') REFERENCES transaksi('trx_id');

contoh query mysql diatas adalah query pembuatan tabel tanpa membuat primary key dan foreign key. Nah sekarang simak query di bawah ini untuk membuat primary key dan foreign key.

setelah query create table di atas adalah query pembuatan primary dan foreign key pada database penjualan, tepatnya pada tabel transaksi dan transaksid.

Jika ingin membuat database di MySQL maka hal yang harus dikuasai dengan baik adalah cara menentukan dan membuat Primary Key dan Foreign Key.

Sebut saja kita ingin  membuat database penjualan barang, maka perhatikan apa proses dan entitas yang terlibat dan harus disimpan di database. Barang memiliki kode, nama, harga, deskripsi dll. Barang bisa disebut sebagai entitas dan (kode,nama,harga,deskripsi dll) dapat disebut attribute.

Selanjutnya saat ingin menjual barang maka dapat diketahui bahwa ini adalah proses (Menjual). Ketika menjual maka yang hendak disimpan adalah data penjualan. Maka sebutkan semua hal yang harus disimpan saat penjualan terjadi, semua hal tersebut harus diwakilkan oleh sebuah id unik untuk dapat disimpan dan dikenali di database.

Pahami database sebagai hal yang memang terjadi di keseharian kita, saat barang berhubungan dengan penjualan maka akan ada relasi yang harus dibuat. Dengan hal itu membuat database akan menjadi lebih mudah karena keadaan sudah diketahui. Begitu juga saat tabel lain ditambah ke database penjualan yang sedang dibuat, seperti tabel customer. Saat penambahan tabel costumer tersebut dilakukan hendaknya terlebih dahulu kamu memiliki alasan kenapa tabel tersebut ditambahkan.

APA itu Primary Key dan Foreign Key?

Pengertian Primary Key

Primary Key adalah suatu kolom yang dipilih untuk menjadi id untuk setiap baris data sebuah tabel.  Banyak pakar telah membahas pengertian Primary Key ini. Merujuk pada pengertian primary key dari javatpoint Nilai dari primary key merupakan suatu yang unik.

Untuk lebih mudah dipahami, uraian definisi Primary Key kita bawa ke study kasus database penjualan tadi dimana kita telah membahas tentang tabel barang, penjualan dan customer.

Konsep diawal tadi kita analisa database dengan mengenal istilah Entitas dan Atribut. Barang adalah entitas dan atributnya adalah kode,nama, harga dan deskripsi. Saat membuat tabel di database penjualan, entitas Barang adalah nama tabel dan atribut kode,nama, harga dan deskripsi  adalah kolom seperti Berikut

Tabel Barang

Contoh Tabel Barang

Dari tabel di atas Primary key dipilih dari salah satu kolom/atribut yang ada. Primary key harus merupakan data yang unik maksudnya data yang terdapat pada kolom yang dipilih tidak memiliki data yang sama.

Perhatikan data nama, terdapat ada 2 nama yang sama. Demikian juga dengan data harga ada pula data yang sama. Untuk deskripsi mesikipun tidak memilik data yang sama namun sebaiknya kolom yang berisi data dengan spasi tidak dijadikan unik key. Satu – satunya yang memenuhi syarat untuk menjadi primary key adalah kode.

Kode memiliki nilai yang berbeda dan bisa disebut sebagai unik identifikasi untuk setiap baris data. Namun apakah kode bisa dijadikan primary key? Jawaban untuk sementara bisa digunakan untuk primary key jika data kode barang seperti data tabel di atas.

Namun bagaimana jika kebutuhan menyimpan barang semakin banyak sehingga kode barang menjadi sangat bervariasi seperti C001 atau D0-001 atau KM IN.

Hal ini akan menimbulkan masalah di kemudian hari. Kode barang menjadi data yang tidak beraturan lagi dan rawan perbedaan tipe data.

Nah jika sudah begini solusinya bagaimana?? Apakah kode masih menjadi atribut yang ideal untuk dijadikan Primary Key? Tentu saja jawabannya tidak

Untuk mengantisipasi primary key yang tidak ideal di atas maka sebaiknya Primary Key Dibuat sebagai data yang sudah memiliki jumlah tetap dan memiliki type data sama.

Dalam hal di atas jika kode barang berubah-ubah bentuknya maka buatlah atribut/kolom baru dengan nama id_barang yang mana datanya dapat dikontrol secara internal. Buatlah id_barang auto increment sehingga datanya memiliki tipe data yang sama seperti ineger atau biginteger. Atau jika ingin menggabungkan data integer dan string seperti A0001 buatlah inputnya menjadi teratur dan dikontrol sebelum dimasukkan ke database.

Membuat database dengan tipe A0001 ini dikenal dengan id dengan prefix. Kemampuan programming sedikit diperlukan untuk membuat format ini.

Pengertian Foreign Key

Foreign Key adalah Satu attribute atau kolom yang terdapat pada tabel anak. Atribut atau kolom ini merupakan primary di kolom induk.

Seperti contoh di atas id_barang akan menjadi foreign key di tabel penjualan. Tabel barang dapat disebut sebagai tabel induk dan tabel penjualan disebut sebagai tabel anak.

Ilustrasi lain yang dapat memudahkan memahami konsep antara tabel anak dan tabel induk dapat dilihat pada data provinsi dan kabupaten seperti gambar di bawah ini

Contoh Tabel Induk Provinsi dan Tabel Anak Kabupaten

Ilustrasi tabel anak dan tabel induk adalah bagian termudah untuk memahami foreign key.

Dari tabel di atas provinsi adalah induk dari kabupaten. Saat membuat foreign key maka id_provinsi akan dibuat menjadi kunci tamu di tabel kabupaten.

Kabupaten sebagai anak dari provinsi adalah hal yang memang kita temui di lapangan. Untuk menjadikan Kabupaten sebagai anak dari propinsi maka id_provinsi harus menjadi foreign key di tabel kabupaten.

Contoh Lain tabel fakultas dan tabel jurusan. Jurusan adalah sublevel dari fakultas. Saat ingin menjadikan jurusan sebagai sublevel fakultas, maka id_fakultas harus menjadi foreign key di tabel jurusan. Silahkan terapkan pada phpmyadmin seperti cara di bawah ini.

Cara Membuat Primary Key dan Foreign Key di MySQL PHPMyAdmin

Studi kasus tabel provinsi dan kabupaten. Setiap kabupaten memiliki induk yaitu provinsi.

Buatlah database terlebih dahulu dengan membuka pehpmyadmin. disini database yang digunakan adalah indonetsource. tabel yang akan dibuat adalah tabel provinsi dengan primary key id_provinsi dan tabel kabupaten dengan primary key id_kabupaten.

Foreign key berada di tabel anak yaitu tabel kabupaten.

Masing – masing tabel adalah sebagai berikut:

1.  Tabel induk provinsi 

Amati kolom “action”, sebuah attribut dapat dijadikan primary dengan mengklik tanda kunci / text Primary pada kolom Action. Setelah di klik maka ikon kunci akan muncul pada atribut seperti di bawah ini

2.  Tabel anak (kabupaten)

Tabel Kabupaten

Untuk membuat tabel kabupaten kita memerlukan tiga buah atribut atau kolom. Satu kolom yang menjadi tambahan adalah kolom id_provinsi yang menjadi foreign key.

3. Selesaikan Foreign Key dengan membari index pada id_provinsi

Buka tabel anak disini(kabupaten) dan beri index foreign key untuk atribut id_provinsi. Untuk memberi index buka tabel kabupaten klik “Relation view” dan ceklist kolom id_provinsi dan klik index.

Apa itu primary key pada mysql?
Index tabel

Membuat Relasi dan Constraint Foreign Key

Tujuan adanya foreign key adalah untuk bisa direlasikan data di tabel induk dan tabel anak. Saat relasi dibuat juga diperlukan batasan apakah data induk boleh dihapus saat datanya tersimpan sebagai foreign key di tabel anak.

Data induk sebaiknya tidak boleh di hapus jika foreign keynya masih tersimpan di tabel anak. untuk mebuat constraint ini silahkan ikuti langkah berikut.

1. Design relasi dan constraint on delete dengan memilih Menu Restrict pada menu designer saat create relation di terapkan ke tabel provinsi dan kabupaten

Apa itu primary key pada mysql?

3. Hasil akhir

Apa itu primary key pada mysql?
Contoh Relasi dengan Constraint

Silahkan isikan data ke tabel provinsi dan tabel kabupaten lakukan test Constraint.

jika constraint berjalan dengan benar maka saat menghapus data provinsi yang telah digunakan sebagai foreign key di tabel kabupaten akan memunculkan error seperti di bawah ini

Apa itu primary key dalam SQL?

Primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Nilai dari primary key adalah unik.

Apa itu primary key dan contohnya?

Primary Key merupakan sebuah aturan dimana fungsinya adalah untuk membedakan anatara baris satu dengan baris lainnya yang ada pada tabel dan bersifat unik. Berikut adalah contoh primary key pada salah satu tabel. Contoh sederhana penerapan primary key adalah seperti contoh diatas adalah id.

Apa yang dimaksud dengan primary key dan foreign key?

2.1 Kolom Kunci Primary key umumnya berupa nilai unik, seperti: nomor id atau nomor seri. Pada access primary key disimbolkan dengan logo kunci. Foreign Key : suatu kolom yang berisi primary key tabel lainnya. Sebuah tabel dapat berisi lebih dari satu foreign key.

Kenapa disebut primary key?

Secara sederhana, Primary Key disebut juga dengan Kunci Primer. Kunci Primer tersebut dipilih sebagai identifikasi untuk membedakan satu baris dengan baris lainnya dalam suatu tabel. Pada dasarnya, setiap tabel hanya memiliki satu primary key saja.