Co to jest UNIQUE w SQL?
UNIQUE to ograniczenie integralności, które wymusza, aby wartości w danej kolumnie lub zestawie kolumn były niepowtarzalne. Dzięki temu w tabeli nie mogą pojawić się dwa rekordy z taką samą wartością w polu objętym tym ograniczeniem.
W kontekście pytania egzaminacyjnego ważne jest, że klucz główny (PRIMARY KEY) zawsze musi jednoznacznie identyfikować rekord, dlatego ma cechy NOT NULL i UNIQUE.
Do czego służy UNIQUE?
UNIQUE stosuje się wtedy, gdy:
- dana wartość ma być unikalna w tabeli,
- chcemy zapobiec duplikatom,
- kolumna nie jest kluczem głównym, ale nadal musi mieć niepowtarzalne dane.
Przykłady:
- numer PESEL,
- adres e-mail użytkownika,
- login.
Przykład w CREATE TABLE
CREATE TABLE Uzytkownicy (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE
);
W tym przykładzie:
- id jest kluczem głównym,
- email musi być unikalny, ale nie jest kluczem głównym.
UNIQUE a PRIMARY KEY
Podobieństwo:
- oba ograniczenia pilnują unikalności danych.
Różnica:
- PRIMARY KEY dodatkowo nie dopuszcza wartości NULL i w tabeli występuje standardowo jako główny identyfikator rekordu,
- UNIQUE służy głównie do pilnowania niepowtarzalności innych pól.
Najważniejsze na egzamin
Jeśli pytanie dotyczy warunku poprawnego i konsekwentnego działania tabeli, chodzi o to, że każda tabela powinna mieć klucz główny, czyli pole:
- unikalne,
- niepuste (NOT NULL).
Dlatego poprawna odpowiedź wskazuje na PRIMARY KEY z właściwościami NOT NULL i UNIQUE. W praktyce te cechy wynikają z samej definicji klucza głównego.