I couldn't find an clear answer on this during my research. Any help will be appreciated.
A candidate key in relational theory is a column (or columns) that contains unique values, and may be used to uniquely identify a row; a primary key is a candidate key that has been identified as the method of identifying the rows for purposes of building relationships.
Depending on the design, a table may have multiple candidate keys, but only one of them is identified as the primary key. For example, you may have a table of parts for resale; it is possible that the vendor identification for the parts may be unique and different from your own unique resale ids. this table would have two candidate keys, either of which could be used as a primary key (or a third surrogate instead).