Klucz podstawowy (PRIMARY KEY) to ograniczenie, które identyfikuje jednoznacznie każdy wiersz tabeli. W praktyce wymusza unikalność wartości w danej kolumnie (lub zestawie kolumn) oraz brak wartości NULL, a w wielu systemach jest też automatycznie wspierany indeksem.
Jeżeli tabela już istnieje, to zmiany jej definicji wykonuje się poleceniami z grupy DDL, a podstawowym narzędziem jest ALTER TABLE. Dlatego polecenie ALTER TABLE uczniowie ADD PRIMARY KEY (id); jest właściwe: modyfikuje schemat tabeli uczniowie i dodaje do niego ograniczenie klucza podstawowego dla kolumny id.
Pozostałe propozycje są błędne, bo używają niepoprawnych konstrukcji:
- INSERT TABLE ... – w SQL używa się INSERT INTO do dodawania wierszy (danych) do tabeli, a nie do zmiany jej struktury. To typowe pomylenie DML z DDL.
- ADD TABLE ... – samo ADD nie jest samodzielnym poleceniem SQL. Występuje jako część składni ALTER TABLE ... ADD ....
- INSERT TABLE ... ADD PRIMARY KEY ... – łączy dwie różne kategorie działań w niepoprawny sposób; dodanie klucza podstawowego wykonuje się przez ALTER TABLE (lub podczas CREATE TABLE), nie przez INSERT.
Warto pamiętać o warunkach praktycznych: dodanie PRIMARY KEY nie powiedzie się, jeśli w kolumnie id są duplikaty lub wartości NULL, oraz tabela może mieć tylko jeden klucz podstawowy.