logo

SQL | UNIKĀLS ierobežojums

Unikālais ierobežojums SQL nodrošina, ka vērtības kolonnā vai kolonnu kopā ir atšķirīgas, novēršot dublikātus. Atšķirībā no PRIMĀRĀS ATSLĒGAS, tā pieļauj vairākas NULL vērtības, jo katra NULL tiek uzskatīta par unikālu, savukārt primārajai atslēgai visām vērtībām ir jābūt unikālām un nav NULL.

Funkcijas:

  • Nodrošina, ka kolonnai(-ām) ir unikālas vērtības.
  • Ir atļauti vairāki NULL.
  • Var attiekties uz vienu vai vairākām kolonnām.
  • Neizveido automātiski indeksu (lai gan daudzas datu bāzes to dara veiktspējas nodrošināšanai).
  • Var pievienot vai noņemt, izmantojot ALTER TABLE.

Sintakse:



CREATE TABLE table_name (  
 column1 datatype UNIQUE
 column2 datatype
 ...
);

Iepriekš minētajā sintaksē:

  • CREATE TABLE table_name: izveido jaunu tabulu.
  • kolonnas 1 datu tips UNIKĀLS: definē kolonnu ar datu tipu un ievieš unikālas vērtības.
  • kolonnas 2 datu tips: definē citu kolonnu bez unikāla ierobežojuma.
  • Ja nepieciešams, atkārtojiet šo darbību papildu kolonnām.

SQL UNIQUE ierobežojuma izmantošanas piemērs

1. piemērs. Tabulas izveide ar UNIKĀLIEM ierobežojumiem

Izveidosim tabulu Klienti, kur kolonnai E-pasts ir jābūt unikālai.

CREATE TABLE Customers (  
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);

Šajā gadījumā katram klientam ir jābūt unikālai e-pasta adresei. Ja mēģināt ievietot e-pasta dublikātu SQL radīs kļūdu.

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');

Trešā ievietošana neizdosies, jo e-pasts [email protected] jau pastāv tabulā Klienti.

2. piemērs: UNIQUE izmantošana ar vairākām kolonnām

Mēs varam arī piemērot UNIQUE ierobežojumu vairākām kolonnām, lai nodrošinātu, ka šo kolonnu kombinācija ir unikāla.

lejupielādēt youtube video ar vlc
CREATE TABLE Orders (  
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);

Šajā piemērā CustomerID un ProductID kombinācijai ir jābūt unikālai, kas nozīmē, ka klients nevar pasūtīt vienu un to pašu produktu vairāk nekā vienu reizi.

3. piemērs. Unikālo vērtību pārbaude, izmantojot apakšvaicājumus

SQL ļauj pārbaudīt apakšvaicājumu unikalitāti. Apakšvaicājumā varat izmantot atslēgvārdu UNIKĀLS, lai nodrošinātu, ka rezultātos nav vērtību dublikātu.

SELECT CustomerID  
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);

Šajā piemērā mēs pārbaudām, vai katram klientam tabulā Pasūtījumi ir dublētas OrderID vērtības. Ja apakšvaicājums atgriež unikālas vērtības, tiks atlasīts klienta ID.

Svarīgi punkti

  • Novērtē uz patiesu tukšā apakšvaicājumā.
  • Atgriež vērtību True tikai tad, ja kā apakšvaicājuma izvade ir unikāli korteži (divi korteži ir unikāli, ja jebkura abu korešu atribūta vērtība atšķiras).
  • Atgriež vērtību True, ja apakšvaicājumā ir divas rindas ar vismaz vienu atribūtu kā NULL.
Ieteiktā viktorīna Rediģēt viktorīnu 6 Jautājumi

Ko SQL nodrošina UNIKĀLS ierobežojums?

  • A

    Kolonnā tiek saglabātas tikai tās vērtības, kas nedublētos

  • B

    Kolonna ļauj vērtības, nepārbaudot dublikātus

  • C

    Kolonna pieņem vairākas identiskas vērtības rindās

  • D

    Kolonna saglabā tikai vērtības, kas vienmēr nav NULL

Paskaidrojums:

UNIQUE nodrošina, ka visām kolonnas (vai kolonnu grupas) vērtībām ir jābūt atšķirīgām, lai novērstu ierakstu dublikātus.

Kā UNIKĀLA atšķiras no PRIMĀRĀS ATSLĒGAS?

  • A

    UNIQUE pieļauj daudzas NULL vērtības; primārā atslēga nav

  • B

    UNIQUE noņem NULL; primārā atslēga vienmēr saglabā NULL

  • C

    UNIKĀLU spēku indeksēšana; primārā atslēga novērš indeksus

  • D

    UNIQUE nodrošina šķirošanu; primārā atslēga ļauj izvairīties no pasūtīšanas

Paskaidrojums:

UNIQUE pieļauj vairākas NULL vērtības, jo katra NULL tiek uzskatīta par atšķirīgu atšķirībā no PRIMARY KEY, kas pilnībā aizliedz NULL.

Kas notiek, ievietojot dublikātu unikālā kolonnā?

  • A

    SQL pieņem dublētās rindas un saglabā abas vērtības

  • B

    SQL aizstāj iepriekšējo vērtību ar pēdējo ievietoto vērtību

  • C

    SQL noraida dublikātu un ģenerē integritātes kļūdu

  • D

    SQL automātiski pārvērš dublēto vērtību par NULL

Paskaidrojums:

Ja vērtība pārkāpj UNIQUE ierobežojumu, SQL bloķē ievietošanu vai atjauninājumu un ziņo par kļūdu.

Kurš apgalvojums par UNIQUE un NULL ir pareizs?

  • A

    UNIQUE visas NULL vērtības apstrādā kā vienādus dublikātus

  • B

    UNIQUE visas NULL vērtības apstrādā kā atsevišķas unikālas rindas

  • C

    UNIQUE pārvērš visus NULL ierakstus tukšās virknēs

  • D

    UNIQUE pieļauj NULL tikai tad, ja kolonnā nav datu

Paskaidrojums:

Ir atļauti vairāki NULL, jo katrs NULL tiek novērtēts kā atsevišķa nesalīdzināma vērtība sadaļā UNIQUE.

Kāpēc daudzas datu bāzes izveido indeksu UNIQUE?

  • A

    Pirms ievietošanas sakārtot vērtības alfabētiskā secībā

  • B

    Lai formatētu skaitliskos datus pirms saglabāšanas tabulā

  • C

    Lai pārvērstu NULL par unikālām secīgām vērtībām

  • D

    Lai uzlabotu dublikātu pārbaudi validācijas laikā

Paskaidrojums:

Indekss palīdz programmai ātri noteikt dublētās vērtības, padarot UNIKĀLU ierobežojumu izpildi efektīvāku.

Ko atslēgvārds UNIKĀLS pārbauda apakšvaicājumā?

  • A

    Nodrošina, ka apakšvaicājums atgriež tieši vienu ciparu kolonnu

  • B

    Nodrošina, ka apakšvaicājuma izvadē ir tikai atšķirīgas rindas

  • C

    Nodrošina apakšvaicājumā vērtību salīdzināšanu, neizmantojot savienojumus

  • D

    Nodrošina, ka apakšvaicājumā tiek ignorētas rindas, kurās ir NULL

Paskaidrojums:

UNIQUE apstiprina, ka apakšvaicājums nerada dublikātus — katrai atgrieztajai rindai ir jāatšķiras vismaz vienā atribūtā.

SQL | UNIKĀLS ierobežojumsViktorīna ir veiksmīgi pabeigta, jūsu rezultāts:  2/6Precizitāte: 0%Piesakieties, lai skatītu skaidrojumu 1/6 1/6 < Previous Nākamais >