logo

СКЛ | УНИКУЕ Цонстраинт

Ограничење УНИКУЕ у СКЛ-у осигурава да су вредности у колони или скупу колона различите и спречавају дупликате. За разлику од ПРИМАРНОГ КЉУЧА, он дозвољава вишеструке НУЛЛ вредности пошто се свака НУЛЛ третира као јединствена док примарни кључ захтева да све вредности буду јединствене и не-НУЛЛ.

Карактеристике:

  • Обезбеђује да колоне имају јединствене вредности.
  • Више НУЛЛ вредности је дозвољено.
  • Може се применити на једну или више колона.
  • Не креира аутоматски индекс (иако многе базе података раде за перформансе).
  • Може се додати или уклонити помоћу АЛТЕР ТАБЛЕ.

Синтакса:



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

У горњој синтакси:

  • ЦРЕАТЕ ТАБЛЕ име_табеле: креира нову табелу.
  • цолумн1 тип података УНИКУЕ: дефинише колону са типом података и примењује јединствене вредности.
  • колона2 тип података: дефинише другу колону без јединственог ограничења.
  • Поновите за додатне колоне по потреби.

Пример коришћења СКЛ УНИКУЕ ограничења

Пример 1: Креирање табеле са ЈЕДИНСТВЕНИМ Ограничењима

Хајде да направимо табелу Купци у којој колона Емаил мора бити јединствена.

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

У овом случају сваки купац мора имати јединствену адресу е-поште. Ако покушате да убаците дупликат е-поште СКЛ ће покренути грешку.

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

Треће уметање неће успети јер имејл јохн.дое@екампле.цом већ постоји у табели Купци.

Пример 2: Коришћење УНИКУЕ са више колона

Такође можемо применити ограничење УНИКУЕ на више колона како бисмо осигурали да је комбинација тих колона јединствена.

CREATE TABLE Orders (  
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);

У овом примеру комбинација ИД-а купца и ИД-а производа мора бити јединствена, што значи да купац не може наручити исти производ више од једном.

Пример 3: Провера јединствених вредности помоћу потупита

СКЛ вам омогућава да проверите јединственост у потупитима. Можете да користите кључну реч УНИКУЕ у потупиту да бисте били сигурни да резултати не садрже дупле вредности.

писпарк
SELECT CustomerID  
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);

У овом примеру проверавамо да ли постоје дупле вредности ИД налога за сваког купца у табели Поруџбине. Ако потупит врати јединствене вредности, ЦустомерИД ће бити изабран.

Важне тачке

  • Процењује на тачно на празном подупиту.
  • Враћа тачно само ако постоје јединствене торке присутне као излаз подупита (две торке су јединствене ако се вредност било ког атрибута две торке разликује).
  • Враћа тачно ако подупит има два дуплирана реда са најмање једним атрибутом као НУЛЛ.
Предложени квиз Уреди квиз 6 питања

Шта ограничење УНИКУЕ обезбеђује у СКЛ-у?

  • А

    Колона чува само вредности које се не дуплирају

  • Б

    Колона дозвољава вредности без провере дупликата

  • Ц

    Колона прихвата више идентичних вредности у редовима

  • Д

    Колона чува само вредности које увек нису НУЛЛ

Објашњење:

УНИКУЕ осигурава да све вредности у колони (или групи колона) морају бити различите, спречавајући дупле уносе.

Како се УНИКУЕ разликује од ПРИМАРНОГ КЉУЧА?

  • А

    УНИКУЕ дозвољава много НУЛЛ вредности; примарни кључ не

  • Б

    УНИКУЕ уклања НУЛЛ; примарни кључ увек чува НУЛЛ

  • Ц

    ЈЕДИНСТВЕНО индексирање сила; примарни кључ спречава индексе

  • Д

    УНИКУЕ спроводи сортирање; примарни кључ избегава наручивање

Објашњење:

УНИКУЕ дозвољава вишеструке НУЛЛ вредности јер се свака НУЛЛ сматра другачијом за разлику од ПРИМАРНОГ КЉУЧА који у потпуности забрањује НУЛЛ.

Шта се дешава када се убаци дупликат вредности у УНИКУЕ колону?

  • А

    СКЛ прихвата дуплирани ред и чува обе вредности

  • Б

    СКЛ замењује ранију вредност са последњом уметнутом

  • Ц

    СКЛ одбацује дупликате и генерише грешку интегритета

  • Д

    СКЛ аутоматски конвертује дуплирану вредност у НУЛЛ

Објашњење:

Ако вредност крши ограничење УНИКУЕ, СКЛ блокира уметање или ажурирање и пријављује грешку.

Која је изјава о УНИКУЕ и НУЛЛ тачна?

  • А

    УНИКУЕ третира све НУЛЛ вредности као једнаке дупликате

  • Б

    УНИКУЕ третира све НУЛЛ вредности као засебне јединствене редове

  • Ц

    УНИКУЕ претвара све НУЛЛ уносе у празне стрингове

  • Д

    УНИКУЕ дозвољава НУЛЛ само када нема података у колони

Објашњење:

Више НУЛЛ вредности је дозвољено јер се свака НУЛЛ вреднује као посебна неупоредива вредност под УНИКУЕ.

Зашто многе базе података креирају индекс за УНИКУЕ?

  • А

    Да организујете вредности по абецедном реду пре уметања

  • Б

    За форматирање нумеричких података пре складиштења у табелу

  • Ц

    За претварање НУЛЛ-ова у јединствене секвенцијалне вредности

  • Д

    За побољшање провере дупликата током валидације

Објашњење:

Индекс помаже машини да брзо открије дупле вредности чинећи примену УНИКУЕ ограничења ефикаснијом.

Шта проверава УНИКУЕ кључна реч у потупиту?

  • А

    Осигурава да потупит враћа тачно једну нумеричку колону

  • Б

    Осигурава да излаз подупита садржи само различите редове

  • Ц

    Осигурава да потупит упоређује вредности без употребе спојева

  • Д

    Осигурава да потупит игнорише редове који садрже НУЛЛ

Објашњење:

УНИКУЕ потврђује да потупит не производи дупле тупле—сваки враћени ред мора да се разликује у најмање једном атрибуту.

СКЛ | УНИКУЕ ЦонстраинтКвиз је успешно завршен Ваш резултат:  2/6тачност: 0%Пријавите се да бисте видели објашњење 1/6 1/6 < Previous Следећи >