SQL UNIQUE

SQL UNIQUE


    


DEFINICJA

UNIQUE to jedno z ograniczeń (CONSTRAINTS) które można „nałożyć” na kolumny w tabeli. Możemy wskazać kolumnę, która ma przechowywać unikalne wartości. Początkujący programiści często mylą UNIQUE z PRIMARY KEY. Są pewne różnice. W odróżnieniu od klucza głównego (który może być tylko jeden w tabeli) kolumn z ograniczeniem UNIQUE może być więcej niż jedna w tabeli. Kolumny te mogą (w odróżnieniu od kluczy głównych) przechowywać wartości NULL.


Przykład zastosowania UNIQUE przy tworzeniu nowej tabeli (SQL SERVER).

CREATE TABLE Pracownicy
(
     ID_pracownik int NOT NULL UNIQUE
    ,Imie varchar(20)
    ,Nazwisko varchar(50)
    ,Adres varchar(50)
    ,Email varchar(30)
    ,Telefon int
)


 Przykład zastosowania UNIQUE przy tworzeniu nowej tabeli (MySQL).

CREATE TABLE Pracownicy
(
     ID_pracownik int NOT NULL
    ,Imie varchar(20)
    ,Nazwisko varchar(50)
    ,Adres varchar(50)
    ,Email varchar(30)
    ,Telefon int
   ,UNIQUE(ID_pracownik)
)


 Ograniczeniu UNIQUE można nadać nazwę i nałożyć je na więcej niż jedną kolumnę.

CREATE TABLE Pracownicy
(
     ID_pracownik int NOT NULL
    ,Imie varchar(20)
    ,Nazwisko varchar(50)
    ,Adres varchar(50)
    ,Email varchar(30)
    ,Telefon int
   ,CONSTRAINTS unique_Person UNIQUE (ID_pracownik,Nazwisko)
)


Ogranicznie UNIQUE możemy nadać już na istniejącą tabelę (kolumnę).

ALTER TABLE Pracownicy
ADD UNIQUE (ID_pracownik)


 Tak jak przy tworzeniu tabeli ograniczenie UNIQUE możemy nadać na więcej niż jedną kolumnę i nadać mu nazwę.

ALTER TABLE Pracownicy
ADD CONSTRAINT unique_Person  UNIQUE (ID_pracownik, Nazwisko)


UNIQUE możemy także usunąć (SQL SERVER).

ALTER TABLE Pracownicy
DROP CONSTRAINT unique_Person