Super key

A combination of columns that can represent a record. You can use these columns to represent a unique record

Candidate key

A candidate key can be considered a special case of a superkey, where a candidate key does not have any extra columns and can represent a unique record

A primary key

The developer selects a candidate key as the primary key

A foreign key

The primary key of the other table is a foreign key in this table