Une colonne PRIMARY KEY est équivalente à UNIQUE et NOT NULL et est une colonne indexée par défaut.
Elle doit être UNIQUE car une clé primaire identifie les lignes d'une table, donc 2 lignes différentes ne doivent pas avoir la même clé.
De plus, une clé primaire peut être utilisée comme FOREIGN KEY dans d'autres tables et c'est pourquoi elle ne peut pas être NULL afin que l'autre table puisse trouver les lignes de la table référencée.
Par exemple :
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)
};