De UNIEKE beperking in SQL zorgt ervoor dat waarden in een kolom of reeks kolommen verschillend zijn, waardoor duplicaten worden voorkomen. In tegenstelling tot een PRIMAIRE SLEUTEL zijn meerdere NULL-waarden toegestaan, omdat elke NULL als uniek wordt behandeld, terwijl een primaire sleutel vereist dat alle waarden uniek en niet-NULL zijn.
Functies:
- Zorgt ervoor dat kolom(men) unieke waarden hebben.
- Meerdere NULL's zijn toegestaan.
- Kan van toepassing zijn op een of meer kolommen.
- Creëert niet automatisch een index (hoewel veel databases dat wel doen vanwege de prestaties).
- Kan worden toegevoegd of verwijderd met ALTER TABLE.
Syntaxis:
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);
In de bovenstaande syntaxis:
- MAAK TABEL tabelnaam: maakt een nieuwe tabel aan.
- kolom1 datatype UNIEK: definieert een kolom met een gegevenstype en dwingt unieke waarden af.
- kolom2 gegevenstype: definieert een andere kolom zonder de unieke beperking.
- Herhaal dit indien nodig voor extra kolommen.
Voorbeeld van het gebruik van de SQL UNIQUE-beperking
Voorbeeld 1: Een tabel maken met UNIEKE beperkingen
Laten we een tabel Klanten maken waarin de kolom E-mail uniek moet zijn.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);
In dit geval moet elke klant een uniek e-mailadres hebben. Als u een dubbele e-mail probeert in te voegen SQL zal een fout opleveren.
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');
De derde invoeging mislukt omdat de e-mail [email protected] al bestaat in de tabel Klanten.
Voorbeeld 2: UNIQUE gebruiken met meerdere kolommen
We kunnen de UNIQUE-beperking ook op meerdere kolommen toepassen om ervoor te zorgen dat de combinatie van die kolommen uniek is.
sorteer de arraylist in Java
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);
In dit voorbeeld moet de combinatie van KlantID en ProductID uniek zijn, wat betekent dat een klant hetzelfde product niet vaker dan één keer kan bestellen.
Voorbeeld 3: Controleren op unieke waarden met behulp van subquery's
Met SQL kunt u controleren op uniciteit in subquery's. U kunt het trefwoord UNIQUE in een subquery gebruiken om ervoor te zorgen dat de resultaten geen dubbele waarden bevatten.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);
In dit voorbeeld controleren we of er dubbele OrderID-waarden zijn voor elke klant in de tabel Orders. Als de subquery unieke waarden retourneert, wordt de KlantID geselecteerd.
Belangrijke punten
- Evalueert naar waar op een lege subquery.
- Retourneert alleen waar als er unieke tupels aanwezig zijn als de uitvoer van de subquery (twee tupels zijn uniek als de waarde van een attribuut van de twee tupels verschilt).
- Retourneert waar als de subquery twee dubbele rijen heeft met ten minste één attribuut als NULL.
Wat zorgt de UNIEKE beperking ervoor in SQL?
- A
Kolom slaat alleen waarden op die niet-duplicaat blijven
- B
Kolom staat waarden toe zonder duplicaten te controleren
- C
Kolom accepteert meerdere identieke waarden in rijen
- D
In de kolom worden alleen waarden opgeslagen die altijd niet-NULL zijn
wat is structuur in datastructuur
UNIQUE zorgt ervoor dat alle waarden in de kolom (of kolomgroep) verschillend moeten zijn om dubbele invoer te voorkomen.
Waarin verschilt UNIQUE van een PRIMARY KEY?
- A
UNIQUE staat veel NULL-waarden toe; primaire sleutel niet
- B
UNIQUE verwijdert NULL's; de primaire sleutel slaat altijd NULL op
- C
UNIEKE krachten indexering; primaire sleutel voorkomt indexen
Java-stringbouwer
- D
UNIQUE dwingt sortering af; primaire sleutel vermijdt bestellen
UNIQUE staat meerdere NULL-waarden toe omdat elke NULL als verschillend wordt beschouwd, in tegenstelling tot een PRIMARY KEY die NULL's volledig verbiedt.
Wat gebeurt er als er een dubbele waarde in een UNIEKE kolom wordt ingevoegd?
- A
SQL accepteert dubbele rijen en slaat beide waarden op
- B
SQL vervangt de eerdere waarde door de meest recentelijk ingevoegde waarde
- C
SQL wijst duplicaten af en genereert een integriteitsfout
- D
SQL converteert dubbele waarden automatisch naar NULL
Als een waarde de UNIEKE beperking schendt, blokkeert SQL de invoeging of update en rapporteert een fout.
Welke uitspraak over UNIQUE en NULL is juist?
doe while loop java
- A
UNIQUE behandelt alle NULL-waarden als gelijke duplicaten
- B
UNIQUE behandelt alle NULL-waarden als afzonderlijke unieke rijen
- C
UNIQUE converteert alle NULL-gegevens naar lege tekenreeksen
- D
UNIQUE staat NULL alleen toe als er geen gegevens in de kolom voorkomen
Meerdere NULL's zijn toegestaan omdat elke NULL wordt geëvalueerd als een afzonderlijke, onvergelijkbare waarde onder UNIQUE.
Waarom creëren veel databases een index voor UNIQUE?
- A
Om waarden alfabetisch te ordenen voordat ze worden ingevoegd
- B
Om numerieke gegevens op te maken voordat ze in een tabel worden opgeslagen
- C
Om NULL's om te zetten in unieke opeenvolgende waarden
- D
Om de controle op duplicaten tijdens de validatie te verbeteren
Een index helpt de engine snel dubbele waarden te detecteren, waardoor UNIQUE-beperkingshandhaving efficiënter wordt.
Wat controleert het trefwoord UNIQUE in een subquery?
- A
Zorgt ervoor dat de subquery precies één numerieke kolom retourneert
- B
Zorgt ervoor dat de uitvoer van subquery's alleen afzonderlijke rijen bevat
- C
Zorgt ervoor dat subquery waarden vergelijkt zonder joins te gebruiken
10 van 100
- D
Zorgt ervoor dat subquery rijen negeert die NULL bevatten
UNIQUE valideert dat de subquery geen dubbele tupels produceert: elke geretourneerde rij moet in ten minste één attribuut verschillen.
Quiz succesvol afgerond Jouw score: 2/6Nauwkeurigheid : 0%Log in om uitleg te bekijken 1/6 1/6 < Previous Volgende >