A primary key uniquely identifies a row and typically implies NOT NULL plus a single main identifier per table. A unique constraint also enforces uniqueness but you can have multiple unique constraints and they may allow NULLs depending on the DB.