SQL Guide : Using SQL for database administration : Referential integrity : Primary keys and candidate keys
  
Primary keys and candidate keys
To enforce referential integrity, a referenced table must contain a primary key (preferable) or candidate keys.
A primary key is a column or combination of columns that has the same properties as a unique constraint. Because primary keys are used to identify a row in a table, they must be unique, and must have the NOT NULL attribute. A table cannot have more than one primary key, but it can have multiple unique keys. Primary keys are optional, and can be defined when a table is created or altered.
A primary key is defined with the primary key constraint syntax in the CREATE TABLE statement. For example:
CREATE TABLE customers (
  cust_id INTEGER PRIMARY KEY,
  name CHAR(24),
  city CHAR(40)
);
Alternatively, you can define a unique index on a column or a group of columns and enact the NOT NULL constraint for them. Effectively, this will produce a candidate key. Using an explicit primary key is however preferable; it can provide performance gains while deriving joins.
See also
Referential integrity