Obmedzenie UNIQUE v SQL zaisťuje, že hodnoty v stĺpci alebo množine stĺpcov sú odlišné, čím sa zabráni duplikáciám. Na rozdiel od PRIMÁRNEHO KĽÚČA umožňuje viacero hodnôt NULL, pretože každá hodnota NULL sa považuje za unikátnu, zatiaľ čo primárny kľúč vyžaduje, aby všetky hodnoty boli jedinečné a iné ako NULL.
Vlastnosti:
- Zabezpečuje, aby stĺpce mali jedinečné hodnoty.
- Povolené sú viaceré hodnoty NULL.
- Možno použiť na jeden alebo viac stĺpcov.
- Nevytvorí automaticky index (hoci mnohé databázy robia kvôli výkonu).
- Dá sa pridať alebo odstrániť pomocou ALTER TABLE.
Syntax:
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);
Vo vyššie uvedenej syntaxi:
- CREATE TABLE table_name: vytvorí novú tabuľku.
- stĺpec1 dátový typ JEDINEČNÉ: definuje stĺpec s typom údajov a vynucuje jedinečné hodnoty.
- Typ údajov stĺpca2: definuje ďalší stĺpec bez jedinečného obmedzenia.
- Opakujte pre ďalšie stĺpce podľa potreby.
Príklad použitia SQL UNIQUE obmedzenia
Príklad 1: Vytvorenie tabuľky s UNIKÁTNYMI obmedzeniami
Vytvorme tabuľku Zákazníci, kde musí byť stĺpec Email jedinečný.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);
V tomto prípade musí mať každý zákazník jedinečnú e-mailovú adresu. Ak sa pokúsite vložiť duplicitný e-mail SQL vyvolá chybu.
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');
Tretie vloženie zlyhá, pretože e-mail [email protected] už existuje v tabuľke Zákazníci.
Príklad 2: Použitie UNIQUE s viacerými stĺpcami
Obmedzenie UNIQUE môžeme použiť aj na viacero stĺpcov, aby sme zaistili, že kombinácia týchto stĺpcov bude jedinečná.
linuxové príkazy, ktoré
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);
V tomto príklade musí byť kombinácia CustomerID a ProductID jedinečná, čo znamená, že zákazník si nemôže objednať rovnaký produkt viac ako raz.
Príklad 3: Kontrola jedinečných hodnôt pomocou poddotazov
SQL vám umožňuje kontrolovať jedinečnosť v poddotazoch. V poddotaze môžete použiť kľúčové slovo UNIQUE, aby ste sa uistili, že výsledky neobsahujú duplicitné hodnoty.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);
V tomto príklade skontrolujeme, či existujú nejaké duplicitné hodnoty OrderID pre každého zákazníka v tabuľke Objednávky. Ak poddotaz vráti jedinečné hodnoty, vyberie sa CustomerID.
Dôležité body
- Vyhodnotí sa ako true pri prázdnom poddotaze.
- Vráti hodnotu true iba vtedy, ak sú ako výstup poddotazu prítomné jedinečné n-tice (dve n-tice sú jedinečné, ak sa hodnota ktoréhokoľvek atribútu týchto dvoch n-tic líši).
- Vráti hodnotu true, ak má poddotaz dva duplicitné riadky s aspoň jedným atribútom ako NULL.
Čo zabezpečuje obmedzenie UNIQUE v SQL?
- A
Stĺpec ukladá iba hodnoty, ktoré zostanú neduplikované
- B
Stĺpec umožňuje hodnoty bez kontroly duplikátov
- C
Stĺpec akceptuje viacero rovnakých hodnôt v riadkoch
- D
Stĺpec ukladá iba hodnoty, ktoré sú vždy iné ako NULL
UNIQUE zaisťuje, že všetky hodnoty v stĺpci (alebo skupine stĺpcov) musia byť odlišné, čím sa zabráni duplicitným záznamom.
Ako sa UNIQUE líši od PRIMÁRNEHO KĽÚČA?
- A
UNIQUE umožňuje veľa hodnôt NULL; primárny kľúč nie
- B
UNIQUE odstraňuje NULL; primárny kľúč vždy ukladá NULL
- C
UNIKÁTNE indexovanie síl; primárny kľúč zabraňuje indexom
- D
UNIQUE vynucuje triedenie; primárny kľúč zabraňuje objednávaniu
UNIQUE povoľuje viacero hodnôt NULL, pretože každá hodnota NULL sa považuje za odlišnú na rozdiel od PRIMÁRNEHO KĽÚČA, ktorý hodnoty NULL úplne zakazuje.
Čo sa stane pri vkladaní duplicitnej hodnoty do stĺpca UNIQUE?
- A
SQL akceptuje duplicitný riadok a ukladá obe hodnoty
- B
SQL nahrádza staršiu hodnotu najnovšou vloženou hodnotou
- C
SQL odmietne duplikát a vygeneruje chybu integrity
- D
SQL automaticky konvertuje duplicitnú hodnotu na NULL
Ak hodnota porušuje obmedzenie UNIQUE, SQL zablokuje vloženie alebo aktualizáciu a ohlási chybu.
Ktoré tvrdenie o UNIQUE a NULL je správne?
- A
UNIQUE považuje všetky hodnoty NULL za rovnaké duplikáty
- B
UNIQUE považuje všetky hodnoty NULL za samostatné jedinečné riadky
- C
UNIQUE skonvertuje všetky položky NULL na prázdne reťazce
- D
UNIQUE povoľuje hodnotu NULL iba vtedy, keď v stĺpci neexistujú žiadne údaje
Viacnásobné hodnoty NULL sú povolené, pretože každá hodnota NULL je vyhodnotená ako odlišná neporovnateľná hodnota v rámci UNIQUE.
Prečo mnohé databázy vytvárajú index pre UNIQUE?
- A
Na usporiadanie hodnôt pred vložením abecedne
- B
Na formátovanie číselných údajov pred uložením do tabuľky
- C
Previesť hodnoty NULL na jedinečné sekvenčné hodnoty
- D
Na zlepšenie kontroly duplikátov počas validácie
Index pomáha enginu rýchlo zistiť duplicitné hodnoty, vďaka čomu je presadzovanie UNIKÁTnych obmedzení efektívnejšie.
Čo kontroluje kľúčové slovo UNIQUE v poddopyte?
- A
Zabezpečuje, že poddotaz vráti presne jeden číselný stĺpec
- B
Zabezpečuje, aby výstup poddotazu obsahoval iba odlišné riadky
- C
Zabezpečuje, že poddotaz porovnáva hodnoty bez použitia spojení
- D
Zabezpečuje, že poddotaz ignoruje riadky, ktoré obsahujú ľubovoľnú hodnotu NULL
ako odhaliť skryté aplikácie
UNIQUE overí, že poddotaz nevytvára žiadne duplicitné n-tice – každý vrátený riadok sa musí líšiť aspoň v jednom atribúte.
Kvíz úspešne dokončený Vaše skóre: 2/6Presnosť: 0%Prihláste sa na zobrazenie vysvetlenia 1/6 1/6 < Previous Ďalej >