Uma coluna PRIMARY KEY é equivalente a UNIQUE e NOT NULL e é uma coluna indexada por padrão.
Deve ser UNIQUE porque uma chave primária identifica linhas em uma tabela, portanto, 2 linhas diferentes não devem ter a mesma chave.
Além disso, uma chave primária pode ser usada como FOREIGN KEY em outras tabelas e é por isso que não pode ser NULL para que a outra tabela possa encontrar as linhas na tabela referenciada.
Por exemplo:
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)
};