Ograniczenie UNIQUE w poleceniu CREATE TABLE służy do zapewnienia, że wartości w danej kolumnie (albo w zdefiniowanej kombinacji kilku kolumn) nie będą się powtarzać. W praktyce oznacza to, że przy próbie wykonania INSERT lub UPDATE baza danych sprawdza, czy nowa wartość nie tworzy duplikatu względem już zapisanych rekordów. Jeśli duplikat powstaje, operacja zostanie odrzucona błędem naruszenia unikalności.
Dlatego poprawna jest odpowiedź: "jest stosowany, jeśli wartości w kolumnie nie mogą się powtarzać."
Dlaczego pozostałe odpowiedzi są błędne?
- "blokuje możliwość wpisania wartości NULL." – za blokowanie NULL odpowiada ograniczenie NOT NULL. UNIQUE dotyczy unikalności, a nie samej dopuszczalności wartości pustej. W wielu implementacjach SQL dopuszczalne są wartości NULL mimo UNIQUE (często nawet wielokrotnie), bo NULL nie jest traktowany jak "konkretna wartość" do porównania.
- "jest stosowany tylko w przypadku pól liczbowych." – to fałsz. UNIQUE można stosować dla różnych typów danych (np. tekst, liczby, daty), o ile da się je porównywać i indeksować zgodnie z zasadami bazy.
- "wymusza unikatowe nazwy pól tabeli." – nazwy kolumn w tabeli i tak muszą być unikalne z samej składni definicji tabeli; UNIQUE nie służy do kontroli nazw, tylko wartości w wierszach.
Wskazówka egzaminacyjna: gdy w odpowiedziach pojawia się "NULL", najczęściej chodzi o rozróżnienie UNIQUE (unikalność wartości) i NOT NULL (zakaz wartości pustej). To są dwa różne mechanizmy, często stosowane razem, ale nie są tym samym.