Perbedaan utama antara kunci asing dan kunci utama adalah bahwa kunci asing adalah kolom atau sekumpulan kolom yang merujuk ke kunci utama atau kunci kandidat dari tabel lain sedangkan kunci utama adalah kolom atau sekumpulan kolom yang dapat digunakan untuk mengidentifikasi baris secara unik dalam tabel.
Kolom atau sekumpulan kolom yang bisa digunakan untuk mengidentifikasi atau mengakses baris atau sekumpulan baris dalam database disebut kunci. Kunci utama dalam database relasional adalah kombinasi kolom dalam tabel yang secara unik mengidentifikasi baris tabel. Kunci asing dalam database relasional adalah bidang dalam tabel yang cocok dengan kunci utama dari tabel lain. Kunci asing digunakan untuk tabel referensi silang.