Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kunci Utama MySQL

Menjelaskan apa itu kunci utama, dan mengapa itu merupakan bagian integral dari database relasional.

Saat kami membuat dua tabel, kami juga membuat kunci utama untuk setiap tabel.

Saat Anda memperluas node di kiri SCHEMAS tab, Anda dapat melihat kunci utama (dan kunci asing—kita akan membahas yang berikutnya) yang tercantum di bawah setiap tabel:

Seperti yang ditunjukkan oleh tangkapan layar terlampir, Indeks node berisi indeks apa pun (dalam kasus kami kunci asing dan/atau kunci utama). Kunci utama dan kunci asing ini hanya ada karena kami menetapkannya dalam kode kami saat membuat tabel.

Secara khusus, kami menggunakan PRIMARY KEY (FruitId) untuk membuat FruitId kolom kunci utama untuk Buah tabel, dan kami menggunakan PRIMARY KEY (UnitId) untuk membuat UnitId kolom kunci utama untuk Unit tabel.

Apa itu Kunci Utama?

kunci utama (juga disebut sebagai kunci unik ) adalah kolom yang telah dialokasikan sebagai bidang pengenal unik. Nilai dalam kolom kunci utama unik untuk setiap catatan. Dengan kata lain, tidak ada dua record yang dapat berbagi nilai yang sama pada kolom tersebut.

Contoh klasik bidang kunci utama adalah bidang "ID". Sebagian besar tabel akan memiliki bidang ID yang menyediakan pengidentifikasi unik untuk setiap catatan. Contohnya dapat mencakup "CustomerId", "ProductId", "FruitId", dll. Tanpa bidang ID seperti ini, fungsi database Anda akan sangat terhambat. Jika Anda memiliki dua atau lebih pelanggan dengan nama yang sama, bagaimana Anda dapat menemukan catatan mereka? Meskipun benar bahwa Anda mungkin dapat menemukan sesuatu yang unik tentang setiap catatan, jauh lebih bersih dan lebih mudah untuk memiliki kolom yang tujuan utamanya adalah untuk memberikan identifikasi unik untuk setiap catatan.

Primer dapat berupa nilai normal yang dijamin unik (nomor ISBN untuk buku, kode produk, dll), atau dapat berupa nilai yang dihasilkan oleh aplikasi atau DBMS khusus untuk menjadi unik (seperti nilai unik global pengenal, atau bilangan bulat yang bertambah otomatis).

Memilih Kunci Utama

Hati-hati saat memilih kolom untuk kunci utama Anda. Anda perlu memastikan setiap record akan memiliki satu, dan tidak ada kemungkinan bahwa dua record akan memiliki nilai yang sama, atau satu record akan memiliki lebih dari satu nilai.

Misalnya, menggunakan alamat email pengguna mungkin berhasil dalam beberapa kasus, tetapi itu bukan dasar yang kuat untuk pengenal unik. Pengguna dapat mengubah alamat email mereka. Pengguna dapat berbagi alamat email. Beberapa pengguna mungkin tidak memiliki alamat email. Tentu saja, Anda dapat menulis sistem Anda untuk mencegah pengguna mengubah alamat email mereka atau membagikannya, tetapi sistem Anda tidak akan terlalu fleksibel atau ramah pengguna.

Anda dapat mewajibkan semua pengguna untuk memiliki nama pengguna yang unik. Itu bisa berhasil. Namun, Anda perlu memikirkan semua kemungkinan dengan hati-hati. Jika ada kemungkinan pengguna dapat mengubahnya atau membagikannya (dulu, sekarang, atau masa depan) jangan gunakan itu sebagai kunci utama. Bagaimana jika "TechGuy12" menonaktifkan akunnya. Apakah itu berarti pengguna lain sekarang dapat menggunakan "TechGuy12"? Apakah itu akan menjadi masalah bagi aplikasi Anda atau laporan apa pun yang perlu Anda buat?

Jika Anda ragu tentang "keunikan" bidang kunci utama Anda, gunakan nomor yang dibuat secara otomatis yang bertambah dengan setiap catatan yang dibuat.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 Fungsi yang Mengembalikan Nama Bulan dari Tanggal di MySQL

  2. PDO dengan INSERT INTO melalui pernyataan yang disiapkan

  3. Kesalahan MySql:Tidak dapat memperbarui tabel dalam fungsi/pemicu tersimpan karena sudah digunakan oleh pernyataan yang memanggil fungsi/pemicu tersimpan ini

  4. ALTER TABLE untuk menambahkan kunci primer komposit

  5. kesalahan sintaks readyStatement