
- •Історія розвитку баз даних
- •2.Перспективи розвитку систем управління базами даних.
- •Перспективи розвитку систем управління базами даних
- •Основні поняття та визначення бд
- •Архітектура бази даних. Фізична та логічна незалежність
- •5. Поняття інформаційно-логічної моделі
- •Етапи життєвого циклу бази даних
- •Основні функції субд
- •Типова організація сучасної субд
- •Класифікація моделей даних
- •11.Ієрархічна модель даних.
- •12.Моделі засновані на інвертованих списках.
- •13.Реляційні бази даних.
- •14.Основні оператори реляційної алгебри.
- •15. Основні елементи er-моделі
- •16. Основні етапи побудови логічної моделі
- •17. Таблиці, унікальність і ключі
- •18. Зовнішні ключі і домени
- •19. Моделювання відносин у базі даних
- •1. Цілісність сутностей
- •2. Цілісність значень
- •21. Перша нормальна форма
- •22. Друга нормальна форма
- •23. Третя нормальна форма
- •Четверта нормальна форма
- •Нормальна форма Бойса-Кодда (нфбк)
- •П’ята нормальна форма
- •Кодування та набори сортування в sql
- •Тема 3. Створення таблиць
- •1. Команда створення таблиці.
- •2. Заборона значення null за допомогою обмеження not null
- •Властивість identity оператора create table
- •Обмеження primary key оператора create table
- •Обмеження foreign key оператора create table
- •Обмеження unique оператора create table
- •Обмеження check оператора create table
- •Обмеження default оператора create table
- •Типи стовпців в sql
- •37.Визначення таблиці за допомогою директиви from
- •Вказівка стовпців в операторі select
- •Вибір рядків і стовпців за допомогою директиви where
- •Використання директиви order by
- •Використання ключового слова distinct для вибірки унікальних значень стовпця
- •42.Використання арифметичних операторів в запиті на вибірку даних
- •43.Використання директиви group by
- •44.Об'єднання результатів запиту за допомогою директиви union
- •45.Використання строкових функцій
- •46.Використання числових функцій
- •47.Додавання даних до таблиці за допомогою оператора insert
- •48.Використання та синтаксис оператора replace
- •49.Використання оператора update
- •50.Видалення даних в sql
Обмеження unique оператора create table
Обмеження UNIQUE можна використовувати, щоб переконатися, що в окремі стовпці, не включені в первинний ключ, не вводяться повторювані значення. Хоча унікальність значень обмеження UNIQUE і PRIMARY KEY гарантують в рівній мірі, в разі, коли необхідно забезпечити унікальність в стовпці або комбінації стовпців, що не є первинними ключовими, замість обмеження PRIMARY KEY слід використовувати обмеження UNIQUE.
Для таблиці можна задати кілька обмежень UNIQUE, і тільки одне обмеження PRIMARY KEY.
Також, на відміну від PRIMARY KEY, обмеження UNIQUE допускають значення NULL. Однак, як і всяке інше значення стовпця з обмеженням UNIQUE, NULL може зустрічатися тільки один раз.
На обмеження UNIQUE можуть посилатися обмеження FOREIGN KEY.
Обмеження UNIQUE може бути створено як частина визначення таблиці при її створенні. Обмеження UNIQUE може бути додано до вже існуючої таблиці за умови, що стовпець або комбінація стовпців, на яких воно грунтується, містять тільки унікальні значення. Таблиця може містити кілька обмежень UNIQUE.
Якщо обмеження UNIQUE вже існує, воно може бути змінене або видалене. Наприклад, може знадобитися зв'язати обмеження UNIQUE з іншими стовпцями або змінити тип кластеризації індексу.
Примітка: Щоб змінити обмеження UNIQUE, необхідно спочатку видалити існуюче обмеження, а потім створити його повторно за допомогою нового визначення.
При додаванні обмеження UNIQUE на вже існуючий стовпець або групу стовпців в таблиці, компонент Database Engine за умовчанням перевіряє унікальність всіх існуючих значень в зазначених стовпцях. При спробі додати обмеження UNIQUE до стовпцю, що містить повторювані значення, компонент Database Engine повертає помилку, а обмеження не додається.
Компонент Database Engine автоматично створює індекс UNIQUE, що забезпечує виконання вимог унікальності значень для обмежень UNIQUE. Тому, при спробі вставки в таблицю рядки з повторюваними даними, компонент Database Engine видає повідомлення про помилку, в якому повідомляється про порушення обмеження UNIQUE, а рядок в таблицю не вставляється. Для забезпечення виконання обмеження UNIQUE за умовчанням створюється унікальний некластерізованний індекс, якщо явно не вказано створення кластеризованого індексу.
У наведеному нижче фрагменті інструкції CREATE TABLE показано визначення стовпця Name і на цей стовпець задано обмеження UNIQUE, що гарантує унікальність значень.
Name nvarchar (100) NOT NULL
UNIQUE NONCLUSTERED
Щоб зняти вимоги унікальності, пропоновані значенням в стовпцях таблиці, включеної в обмеження UNIQUE, необхідно видалити це обмеження. Обмеження UNIQUE не може бути видалено, якщо пов'язаний з ним стовпець використовується в якості повнотекстового ключа таблиці.
Обмеження check оператора create table
Обмеження типу CHECK (перевірочні обмеження) дозволяють виконувати операції порівняння, щоб визначити, чи відповідають значення певним заданим умовам. Синтаксис обмежень типу CHECK дуже схожий на загальний синтаксис обмежень.
CONSTRAIN [ім'я обмеження] CHECK (условія_поіска) [откладиванію_ограніченія] [время_ відкладання]
З іншими елементами цього обмеження ми познайомимося в цьому розділі. умови пошуку
Параметр визначає за допомогою одного або декількох виразів і предиката одну або декілька умов пошуку, які накладають обмеження на значення, що вставляються в стовпець або таблицю. Для стовпця можна вказати кілька умов пошуку за допомогою операторів AND і OR. (Згадайте пропозицію WHERE.)
Вважається, що значення задовольняє обмеженню чіпа CHECK, якщо результатом перевірки умов пошуку є значення TRUE або UNKNOWN. Обмеження типу CHECK використовують тільки булеві оператори (наприклад, =,> =, <= або <>), хоча вони можуть включати будь предикати SQL 2003, наприклад IN або LIKE. Обмеження типу CHECK можна з'єднувати один з одним (при перевірці одного стовпця) за допомогою операторів AND і OR. Ось ще кілька правил, що стосуються обмежень типу CHECK.
Стовпець або таблиця можуть включати одне або кілька обмежень типу
Умови пошуку не можуть містити агрегатні функції, винятком є їх використання в підзапитів.
В умовах пошуку можна використовувати недетермінірованние функції і підзапити.
Обмеження типу CHECK може посилатися тільки на ідентичні об'єкти. Тому, якщо обмеження оголошено в глобальній тимчасової таблиці, воно не може посилатися на постійну таблицю.