Just sticking some notes in here on this:
PRIMARY KEY constraint enforces entity integrity. It is a type of unique constraint that does not allow NULL values.
FOREIGN KEY constraint enforces referential integrity.
UNIQUE constraint guarantees that a column contains unique values in each row (can have one NULL value).
CHECK constraint enforces domain integrity.