Ограничење УНИКУЕ у СКЛ-у осигурава да су вредности у колони или скупу колона различите и спречавају дупликате. За разлику од ПРИМАРНОГ КЉУЧА, он дозвољава вишеструке НУЛЛ вредности пошто се свака НУЛЛ третира као јединствена док примарни кључ захтева да све вредности буду јединствене и не-НУЛЛ.
Карактеристике:
- Обезбеђује да колоне имају јединствене вредности.
- Више НУЛЛ вредности је дозвољено.
- Може се применити на једну или више колона.
- Не креира аутоматски индекс (иако многе базе података раде за перформансе).
- Може се додати или уклонити помоћу АЛТЕР ТАБЛЕ.
Синтакса:
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
);
У овом примеру проверавамо да ли постоје дупле вредности ИД налога за сваког купца у табели Поруџбине. Ако потупит врати јединствене вредности, ЦустомерИД ће бити изабран.
Важне тачке
- Процењује на тачно на празном подупиту.
- Враћа тачно само ако постоје јединствене торке присутне као излаз подупита (две торке су јединствене ако се вредност било ког атрибута две торке разликује).
- Враћа тачно ако подупит има два дуплирана реда са најмање једним атрибутом као НУЛЛ.
Шта ограничење УНИКУЕ обезбеђује у СКЛ-у?
- А
Колона чува само вредности које се не дуплирају
- Б
Колона дозвољава вредности без провере дупликата
- Ц
Колона прихвата више идентичних вредности у редовима
- Д
Колона чува само вредности које увек нису НУЛЛ
УНИКУЕ осигурава да све вредности у колони (или групи колона) морају бити различите, спречавајући дупле уносе.
Како се УНИКУЕ разликује од ПРИМАРНОГ КЉУЧА?
- А
УНИКУЕ дозвољава много НУЛЛ вредности; примарни кључ не
- Б
УНИКУЕ уклања НУЛЛ; примарни кључ увек чува НУЛЛ
- Ц
ЈЕДИНСТВЕНО индексирање сила; примарни кључ спречава индексе
- Д
УНИКУЕ спроводи сортирање; примарни кључ избегава наручивање
УНИКУЕ дозвољава вишеструке НУЛЛ вредности јер се свака НУЛЛ сматра другачијом за разлику од ПРИМАРНОГ КЉУЧА који у потпуности забрањује НУЛЛ.
Шта се дешава када се убаци дупликат вредности у УНИКУЕ колону?
- А
СКЛ прихвата дуплирани ред и чува обе вредности
- Б
СКЛ замењује ранију вредност са последњом уметнутом
- Ц
СКЛ одбацује дупликате и генерише грешку интегритета
- Д
СКЛ аутоматски конвертује дуплирану вредност у НУЛЛ
Ако вредност крши ограничење УНИКУЕ, СКЛ блокира уметање или ажурирање и пријављује грешку.
Која је изјава о УНИКУЕ и НУЛЛ тачна?
- А
УНИКУЕ третира све НУЛЛ вредности као једнаке дупликате
- Б
УНИКУЕ третира све НУЛЛ вредности као засебне јединствене редове
- Ц
УНИКУЕ претвара све НУЛЛ уносе у празне стрингове
- Д
УНИКУЕ дозвољава НУЛЛ само када нема података у колони
Више НУЛЛ вредности је дозвољено јер се свака НУЛЛ вреднује као посебна неупоредива вредност под УНИКУЕ.
Зашто многе базе података креирају индекс за УНИКУЕ?
- А
Да организујете вредности по абецедном реду пре уметања
- Б
За форматирање нумеричких података пре складиштења у табелу
- Ц
За претварање НУЛЛ-ова у јединствене секвенцијалне вредности
- Д
За побољшање провере дупликата током валидације
Индекс помаже машини да брзо открије дупле вредности чинећи примену УНИКУЕ ограничења ефикаснијом.
Шта проверава УНИКУЕ кључна реч у потупиту?
- А
Осигурава да потупит враћа тачно једну нумеричку колону
- Б
Осигурава да излаз подупита садржи само различите редове
- Ц
Осигурава да потупит упоређује вредности без употребе спојева
- Д
Осигурава да потупит игнорише редове који садрже НУЛЛ
УНИКУЕ потврђује да потупит не производи дупле тупле—сваки враћени ред мора да се разликује у најмање једном атрибуту.
Квиз је успешно завршен Ваш резултат: 2/6тачност: 0%Пријавите се да бисте видели објашњење 1/6 1/6 < Previous Следећи >