logo

SQL | УНІКАЛЬНЕ обмеження

Обмеження UNIQUE у SQL гарантує, що значення в стовпці або наборі стовпців є різними, запобігаючи повторенню. На відміну від ПЕРВИННОГО КЛЮЧА, він допускає кілька значень NULL, оскільки кожен NULL розглядається як унікальний, тоді як первинний ключ вимагає, щоб усі значення були унікальними та відмінними від NULL.

особливості:

  • Переконайтеся, що стовпці мають унікальні значення.
  • Дозволено кілька NULL.
  • Може застосовуватися до одного або кількох стовпців.
  • Не створює автоматично індекс (хоча багато баз даних це роблять для продуктивності).
  • Можна додати або видалити за допомогою ALTER TABLE.

Синтаксис:



що таке файлова система linux
CREATE TABLE table_name (  
 column1 datatype UNIQUE
 column2 datatype
 ...
);

У наведеному вище синтаксисі:

  • CREATE TABLE table_name: створює нову таблицю.
  • стовпець1 тип даних UNIQUE: визначає стовпець із типом даних і забезпечує застосування унікальних значень.
  • Тип даних стовпця 2: визначає інший стовпець без унікального обмеження.
  • За потреби повторіть для додаткових стовпців.

Приклад використання обмеження SQL UNIQUE

Приклад 1: Створення таблиці з УНІКАЛЬНИМИ обмеженнями

Давайте створимо таблицю «Клієнти», де стовпець «Електронна пошта» має бути унікальним.

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

У цьому випадку кожен клієнт повинен мати унікальну адресу електронної пошти. Якщо ви спробуєте вставити дублікат електронної пошти SQL викличе помилку.

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

Третя вставка не вдасться, оскільки електронна адреса [email protected] уже існує в таблиці «Клієнти».

Приклад 2: використання UNIQUE з кількома стовпцями

Ми також можемо застосувати обмеження UNIQUE до кількох стовпців, щоб забезпечити унікальність комбінації цих стовпців.

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

У цьому прикладі комбінація CustomerID і ProductID має бути унікальною, тобто клієнт не може замовити той самий продукт кілька разів.

Приклад 3: Перевірка унікальних значень за допомогою підзапитів

SQL дозволяє перевіряти унікальність підзапитів. Ви можете використовувати ключове слово UNIQUE у підзапиті, щоб переконатися, що результати не містять повторюваних значень.

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

У цьому прикладі ми перевіряємо, чи немає повторюваних значень OrderID для кожного клієнта в таблиці Orders. Якщо підзапит повертає унікальні значення, буде вибрано CustomerID.

Важливі моменти

  • Оцінюється як true для порожнього підзапиту.
  • Повертає істину, лише якщо є унікальні кортежі, які є результатом підзапиту (два кортежі є унікальними, якщо значення будь-якого атрибута двох кортежів відрізняється).
  • Повертає true, якщо підзапит має два повторювані рядки з принаймні одним атрибутом NULL.
Запропонована вікторина Редагувати вікторину 6 Питання

Що забезпечує обмеження UNIQUE у SQL?

  • А

    Стовпець зберігає лише значення, які не повторюються

  • Б

    Стовпець дозволяє значення без перевірки дублікатів

  • C

    Стовпець приймає кілька однакових значень у рядках

  • Д

    Стовпець зберігає лише значення, які завжди не є NULL

Пояснення:

UNIQUE гарантує, що всі значення в стовпці (або групі стовпців) мають бути різними, запобігаючи повторюваним записам.

Чим UNIQUE відрізняється від PRIMARY KEY?

  • А

    UNIQUE допускає багато значень NULL; первинний ключ не має

  • Б

    UNIQUE видаляє NULL; первинний ключ завжди зберігає NULL

  • C

    UNIQUE змушує індексувати; первинний ключ запобігає індексам

  • Д

    UNIQUE примусове сортування; первинний ключ уникає впорядкування

Пояснення:

UNIQUE дозволяє використовувати кілька значень NULL, оскільки кожен NULL вважається іншим, на відміну від PRIMARY KEY, який повністю забороняє NULL.

Катріна Кайф

Що відбувається, коли вставляється повторюване значення в стовпець UNIQUE?

  • А

    SQL приймає повторювані рядки та зберігає обидва значення

  • Б

    SQL замінює попереднє значення останнім вставленим

  • C

    SQL відхиляє дублікат і генерує помилку цілісності

  • Д

    SQL автоматично перетворює повторюване значення на NULL

Пояснення:

Якщо значення порушує обмеження UNIQUE, SQL блокує вставку або оновлення та повідомляє про помилку.

Яке твердження щодо UNIQUE і NULL є правильним?

  • А

    UNIQUE розглядає всі значення NULL як однакові дублікати

  • Б

    UNIQUE обробляє всі значення NULL як окремі унікальні рядки

  • C

    UNIQUE перетворює всі записи NULL на порожні рядки

  • Д

    UNIQUE допускає значення NULL лише тоді, коли в стовпці немає даних

Пояснення:

Кілька NULL дозволено, оскільки кожен NULL оцінюється як окреме непорівнянне значення під UNIQUE.

Чому багато баз даних створюють індекс для UNIQUE?

  • А

    Щоб упорядкувати значення в алфавітному порядку перед вставленням

  • Б

    Для форматування числових даних перед збереженням у таблицю

  • C

    Для перетворення NULL в унікальні послідовні значення

  • Д

    Щоб покращити перевірку дублікатів під час перевірки

Пояснення:

Індекс допомагає механізму швидко виявляти повторювані значення, що робить ефективнішим застосування обмежень UNIQUE.

Підручник мовою програмування java

Що перевіряє ключове слово UNIQUE у підзапиті?

  • А

    Гарантує, що підзапит повертає рівно один числовий стовпець

  • Б

    Гарантує, що вихід підзапиту містить лише окремі рядки

  • C

    Гарантує, що підзапит порівнює значення без використання об’єднань

  • Д

    Гарантує, що підзапит ігнорує рядки, які містять будь-який NULL

Пояснення:

UNIQUE підтверджує, що підзапит не створює повторюваних кортежів — кожен повернутий рядок має відрізнятися принаймні одним атрибутом.

SQL | УНІКАЛЬНЕ обмеженняВікторина виконана успішно. Ваш результат:  2/6Точність: 0%Увійдіть, щоб переглянути пояснення 1/6 1/6 < Previous Далі >