Primarni ključ je unos u bazi podataka koji je jedinstven za jedan zapis. Ovaj ključ se općenito izvodi na jedan od dva načina: jedinstveni identifikacijski kod izvan baze podataka ili generirani broj unutar baze podataka. Kada će baza podataka sadržavati informacije koje su uvijek jedinstvene za unos, kao što je broj socijalnog osiguranja ili identifikacijski broj dijela, tada se oni obično koriste kao primarni ključ. Kada podaci neće imati takav identifikator, baza podataka će često kreirati brojeve na temelju svojih internih sustava kako bi svakom zapisu dala jedinstveni kod.
Postoje tri glavna ograničenja primarnog ključa: postojanje, jedinstvenost i nepromjenjivost. Ključ mora postojati u trenutku izrade zapisa — ne može se dodati kasnije. Svaki ključ mora biti potpuno drugačiji od bilo kojeg drugog ključa. To znači da se uobičajeni identifikatori, poput imena ili datuma rođenja, ne mogu koristiti jer je moguće da su dvije osobe rođene na isti dan s istim imenom. Konačno, primarni ključ se nikada ne može mijenjati nakon kreiranja.
Budući da baza podataka potencijalno može imati beskonačan broj unosa, primarni ključ također mora biti beskonačan. Kako bi bili sigurni da baza podataka nikada neće ostati bez ključeva, većina zapisa koristi numerički kod za ključ. Budući da brojevi uvijek mogu postati veći, a računala mogu jednostavno dodati nule koje drže mjesto starijim unosima, sustav nikada neće ostati bez ključeva. Ponekad se ti brojevi temelje na nejedinstvenim informacijama, ali se dodaje jedinstveni identifikator kako bi se osiguralo da je ključ održiv.
Baze podataka će koristiti primarni ključ kao način organiziranja podataka. Budući da se ključ nikada ne ponavlja, ta informacija omogućit će bazi podataka da svaki zapis drži odvojeno od svakog drugog. Svaki podatak u zapisu povezan je natrag s ključem; na taj način, bez obzira što se događa sa sustavom, baza podataka može obnoviti zapise iz labavih informacija.
Dodjeljivanje smislenog primarnog ključa često se smatra boljom praksom od automatskog generiranja vrijednosti. To će zapisu dati identifikator koji radi kao ključ i pruža podatke. U malim bazama podataka ova je razlika rijetko potrebna, ali u velikim sustavima dodatni prostor koji koristi generirani ključ može rezultirati ozbiljnom napuhanošću baze podataka. To će usporiti sustav i učiniti da baza podataka zahtijeva znatno više prostora za pohranu.