Ograniczenie UNIQUE w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.