Una colonna PRIMARY KEY è equivalente a UNIQUE e NOT NULL ed è una colonna indicizzata per impostazione predefinita.
Dovrebbe essere UNIQUE perché una chiave primaria identifica le righe in una tabella, quindi 2 righe diverse non dovrebbero avere la stessa chiave.
Inoltre una chiave primaria può essere utilizzata come CHIAVE FOREIGN in altre tabelle ed è per questo che non può essere NULL in modo che l'altra tabella possa trovare le righe nella tabella di riferimento.
Ad esempio:
CREATE person{
id INT PRIMARY KEY, -- equals UNIQUE NOT NULL
name VARCHAR(20)
};
CREATE family{
id INT PRIMARY KEY, -- equals UNIQUE NOT NULL
menber_id INT FOREIGN KEY REFERENCE person(id)
};