Omejitev UNIQUE v SQL zagotavlja, da so vrednosti v stolpcu ali nizu stolpcev ločene in preprečuje podvajanje. Za razliko od PRIMARNEGA KLJUČA dovoljuje več vrednosti NULL, saj se vsaka NULL obravnava kot edinstvena, medtem ko primarni ključ zahteva, da so vse vrednosti edinstvene in ne-NULL.
Lastnosti:
- Zagotavlja, da imajo stolpci enolične vrednosti.
- Dovoljenih je več NULL.
- Lahko velja za enega ali več stolpcev.
- Ne ustvari samodejno indeksa (čeprav ga številne baze podatkov naredijo zaradi učinkovitosti).
- Lahko se doda ali odstrani z uporabo ALTER TABLE.
Sintaksa:
r in c programiranje
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);
V zgornji sintaksi:
- CREATE TABLE ime_tabele: ustvari novo tabelo.
- podatkovni tip stolpca1 UNIQUE: definira stolpec s podatkovnim tipom in uveljavi edinstvene vrednosti.
- podatkovni tip stolpca2: definira drug stolpec brez enolične omejitve.
- Po potrebi ponovite za dodatne stolpce.
Primer uporabe omejitve SQL UNIQUE
Primer 1: Ustvarjanje tabele z UNIQUE omejitvami
Ustvarimo tabelo Stranke, kjer mora biti stolpec E-pošta edinstven.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);
V tem primeru mora imeti vsaka stranka edinstven e-poštni naslov. Če poskušate vstaviti podvojeno e-pošto SQL bo sprožil napako.
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (1 'John Doe' '[email protected]' 'USA');
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (2 'Jane Smith' '[email protected]' 'Canada');
-- This will fail because '[email protected]' already exists
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (3 'Alice Johnson' '[email protected]' 'UK');
Tretji vstavek ne bo uspel, ker e-pošta [email protected] že obstaja v tabeli strank.
2. primer: uporaba UNIQUE z več stolpci
Omejitev UNIQUE lahko uporabimo tudi za več stolpcev, da zagotovimo, da je kombinacija teh stolpcev edinstvena.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);
V tem primeru mora biti kombinacija CustomerID in ProductID enolična, kar pomeni, da stranka ne more naročiti istega izdelka več kot enkrat.
Primer 3: Preverjanje edinstvenih vrednosti z uporabo podpoizvedb
SQL vam omogoča preverjanje edinstvenosti v podpoizvedbah. V podpoizvedbi lahko uporabite ključno besedo UNIQUE, da zagotovite, da rezultati ne vsebujejo podvojenih vrednosti.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);
V tem primeru preverimo, ali obstajajo podvojene vrednosti OrderID za vsako stranko v tabeli Naročila. Če podpoizvedba vrne edinstvene vrednosti, bo izbran ID stranke.
Pomembne točke
- Pri prazni podpoizvedbi se oceni kot true.
- Vrne true le, če so kot izhod podpoizvedbe prisotne edinstvene tuple (dve tupli sta edinstveni, če se vrednost katerega koli atributa obeh tork razlikuje).
- Vrne true, če ima podpoizvedba dve podvojeni vrstici z vsaj enim atributom NULL.
Kaj zagotavlja omejitev UNIQUE v SQL?
- A
Stolpec hrani samo vrednosti, ki ostanejo nepodvojene
- B
Stolpec dovoljuje vrednosti brez preverjanja dvojnikov
- C
Stolpec sprejme več enakih vrednosti v vrsticah
- D
Stolpec shranjuje samo vrednosti, ki vedno niso NULL
UNIQUE zagotavlja, da morajo biti vse vrednosti v stolpcu (ali skupini stolpcev) različne, kar preprečuje podvojene vnose.
Kako se UNIQUE razlikuje od PRIMARNEGA KLJUČA?
- A
UNIQUE dovoljuje veliko vrednosti NULL; primarni ključ ne
- B
UNIQUE odstrani NULL; primarni ključ vedno shrani NULL
- C
UNIQUE prisili indeksiranje; primarni ključ preprečuje indekse
- D
UNIQUE vsiljuje razvrščanje; primarni ključ se izogiba naročanju
UNIQUE dovoljuje več vrednosti NULL, ker se vsaka NULL šteje za drugačno za razliko od PRIMARNEGA KLJUČA, ki v celoti prepoveduje NULL.
Kaj se zgodi, ko v stolpec UNIQUE vstavite podvojeno vrednost?
- A
SQL sprejme podvojeno vrstico in shrani obe vrednosti
- B
SQL zamenja prejšnjo vrednost z nazadnje vstavljeno
- C
SQL zavrne dvojnik in ustvari napako celovitosti
- D
SQL samodejno pretvori podvojeno vrednost v NULL
Če vrednost krši omejitev UNIQUE, SQL blokira vstavljanje ali posodobitev in sporoči napako.
Katera trditev o UNIQUE in NULL je pravilna?
- A
UNIQUE obravnava vse vrednosti NULL kot enake dvojnike
- B
UNIQUE obravnava vse vrednosti NULL kot ločene edinstvene vrstice
- C
UNIQUE pretvori vse vnose NULL v prazne nize
- D
UNIQUE dovoljuje NULL le, če v stolpcu ni podatkov
Dovoljenih je več NULL, ker je vsaka NULL ovrednotena kot ločena neprimerljiva vrednost pod UNIQUE.
Zakaj veliko baz podatkov ustvari indeks za UNIQUE?
- A
Za organizacijo vrednosti po abecedi pred vstavljanjem
- B
Za formatiranje številskih podatkov pred shranjevanjem v tabelo
- C
Za pretvorbo NULL v edinstvene zaporedne vrednosti
- D
Za izboljšanje preverjanja dvojnikov med potrjevanjem
Indeks pomaga motorju hitro zaznati podvojene vrednosti, zaradi česar je uveljavljanje UNIQUE omejitev učinkovitejše.
Kaj preverja ključna beseda UNIQUE v podpoizvedbi?
- A
Zagotavlja, da podpoizvedba vrne točno en številski stolpec
- B
Zagotavlja, da izhod podpoizvedbe vsebuje samo različne vrstice
- C
Zagotavlja, da podpoizvedba primerja vrednosti brez uporabe združevanj
- D
Zagotavlja, da podpoizvedba prezre vrstice, ki vsebujejo katero koli NULL
UNIQUE potrjuje, da podpoizvedba ne proizvaja podvojenih tuplov – vsaka vrnjena vrstica se mora razlikovati v vsaj enem atributu.
Kviz uspešno zaključen Vaš rezultat: 2/6Natančnost: 0 %Prijavite se za ogled razlage 1/6 1/6 < Previous Naprej >