SQL | EGYEDI kényszer
Az SQL EGYEDI megszorítása biztosítja, hogy egy oszlopban vagy oszlopkészletben lévő értékek különállóak legyenek, megakadályozva a párhuzamosságot. Az ELSŐDLEGES KULCS-tól eltérően több NULL értéket is engedélyez, mivel minden NULL-t egyediként kezelünk, míg az elsődleges kulcshoz minden értéknek egyedinek és nem NULL-nak kell lennie.
Jellemzők:
- Biztosítja, hogy az oszlop(ok) egyedi értékkel rendelkezzenek.
- Több NULL is megengedett.
- Egy vagy több oszlopra alkalmazható.
- Nem hoz létre automatikusan indexet (bár sok adatbázis csinál a teljesítmény érdekében).
- Hozzáadható vagy eltávolítható az ALTER TABLE segítségével.
Szintaxis:
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);A fenti szintaxisban:
- CREATE TABLE table_name: új táblázatot hoz létre.
- oszlop1 adattípus EGYEDI: adattípusú oszlopot határoz meg, és egyedi értékeket kényszerít ki.
- oszlop2 adattípus: egy másik oszlopot határoz meg az egyedi megkötés nélkül.
- Szükség szerint ismételje meg a további oszlopokkal.
Példa az SQL UNIQUE kényszer használatára
1. példa: Táblázat létrehozása EGYEDI kényszerekkel
Hozzunk létre egy Ügyfelek táblát, ahol az E-mail oszlopnak egyedinek kell lennie.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);Ebben az esetben minden ügyfélnek egyedi e-mail címmel kell rendelkeznie. Ha ismétlődő e-mailt próbál beilleszteni SQL hibát fog felvetni.
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');A harmadik beillesztés sikertelen lesz, mert a [email protected] e-mail már létezik az Ügyfelek táblázatban.
2. példa: UNIQUE használata több oszloppal
Az EGYEDI megszorítást több oszlopra is alkalmazhatjuk, hogy biztosítsuk, hogy ezeknek az oszlopoknak a kombinációja egyedi legyen.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);Ebben a példában a CustomerID és ProductID kombinációjának egyedinek kell lennie, ami azt jelenti, hogy a vásárló nem rendelheti meg ugyanazt a terméket többször.
3. példa: Egyedi értékek keresése segédlekérdezések segítségével
Az SQL lehetővé teszi az allekérdezések egyediségének ellenőrzését. Használhatja az EGYEDI kulcsszót egy részlekérdezésben annak biztosítására, hogy az eredmények ne tartalmazzanak ismétlődő értékeket.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);Ebben a példában ellenőrizzük, hogy vannak-e ismétlődő OrderID értékek minden egyes vevőhöz a Rendelések táblában. Ha az allekérdezés egyedi értékeket ad vissza, az Ügyfélazonosító kerül kiválasztásra.
Fontos pontok
- Üres részlekérdezés esetén igazra értékeli.
- Csak akkor adja vissza az igaz értéket, ha az allekérdezés kimeneteként egyedi sorok jelennek meg (két sor egyedi, ha a két sor bármely attribútumának értéke eltér).
- Igaz értéket ad vissza, ha az allekérdezésnek két ismétlődő sora van, és legalább egy attribútum NULL.
Mit biztosít az EGYEDI kényszer az SQL-ben?
- A
Az oszlop csak azokat az értékeket tárolja, amelyek nem ismétlődnek
- B
Az oszlop lehetővé teszi az értékeket a duplikációk ellenőrzése nélkül
- C
Az oszlop több azonos értéket fogad el sorokban
- D
Az oszlop csak azokat az értékeket tárolja, amelyek mindig nem NULL
Az EGYEDI funkció biztosítja, hogy az oszlopban (vagy oszlopcsoportban) lévő összes értéknek külön kell lennie, így elkerülhető az ismétlődő bejegyzések.
Miben különbözik az EGYEDI az ELSŐDLEGES KULCS-tól?
- A
Az UNIQUE sok NULL értéket engedélyez; elsődleges kulcs nem
- B
A UNIQUE eltávolítja a NULL-okat; Az elsődleges kulcs mindig a NULL értéket tárolja
- C
EGYEDI erők indexelése; Az elsődleges kulcs megakadályozza az indexeket
- D
EGYEDI kényszeríti a válogatást; Az elsődleges kulcs elkerüli a rendelést
Az UNIQUE több NULL értéket is engedélyez, mivel minden NULL különbözőnek minősül, ellentétben az ELSŐDLEGES KULCSÁVAL, amely teljesen tiltja a NULL értékeket.
Mi történik, ha ismétlődő értéket szúr be egy EGYEDI oszlopba?
- A
Az SQL duplikált sort fogad, és mindkét értéket tárolja
- B
Az SQL lecseréli a korábbi értéket a legutóbb beillesztett értékre
- C
Az SQL elutasítja a duplikációt, és integritási hibát generál
- D
Az SQL a duplikált értéket automatikusan NULL-lá alakítja
Ha egy érték sérti az EGYEDI kényszert, az SQL blokkolja a beszúrást vagy frissítést, és hibát jelez.
Melyik állítás igaz az UNIQUE-ról és a NULL-ról?
- A
Az UNIQUE minden NULL értéket egyenlő ismétlődésként kezel
- B
Az UNIQUE az összes NULL értéket külön egyedi sorként kezeli
- C
Az UNIQUE az összes NULL bejegyzést üres karakterláncokká alakítja
- D
Az UNIQUE csak akkor engedélyezi a NULL értéket, ha nincs adat az oszlopban
Több NULL is megengedett, mert minden NULL különálló, összehasonlíthatatlan értékként kerül kiértékelésre az EGYEDI.
Miért hoz létre sok adatbázis indexet az UNIQUE számára?
- A
Értékek ábécé szerinti rendszerezése beszúrás előtt
- B
A numerikus adatok formázása a táblázatba való tárolás előtt
- C
A NULL-ok egyedi szekvenciális értékekké alakítása
- D
A másolatok ellenőrzésének javítása az érvényesítés során
Az index segít a motornak gyorsan felismerni az ismétlődő értékeket, így hatékonyabbá válik az EGYEDI kényszerérvényesítés.
Mit ellenőriz az EGYEDI kulcsszó egy segédlekérdezésben?
- A
Biztosítja, hogy a segédlekérdezés pontosan egy numerikus oszlopot adjon vissza
- B
Biztosítja, hogy a segédlekérdezés kimenete csak különálló sorokat tartalmazzon
- C
Biztosítja, hogy az allekérdezés összekapcsolás nélkül hasonlítsa össze az értékeket
- D
Biztosítja, hogy a segédlekérdezés figyelmen kívül hagyja azokat a sorokat, amelyek NULL értéket tartalmaznak
Az UNIQUE ellenőrzi, hogy az allekérdezés nem hoz létre ismétlődő sorokat – minden visszaadott sornak legalább egy attribútumban különböznie kell.
A kvíz sikeresen kitöltött pontszáma: 2 /6 Pontosság: 0% Jelentkezzen be a magyarázat megtekintéséhez 1 /6 1 /6 < Previous Következő >