Column check, default, enum, set
Під час створення або зміни таблиці можна використовуватиобмеження на значенняполя запису. СУБД проігнорує будь-які значення, які порушують певні поля записи критерії.
За замовчуванням поле, що створюється в таблиці, може мати порожнє значення NULL. Щоб поле мало якесь значення, необхідно в опис поля вставитиобмеження значенняNOT NULL. У цьому випадку при вставці або оновленні запису СУБД перевірить значення та відхиляє запис при невизначеності значення.
Очевидно, що первинні ключі ніколи не повинні бути порожніми. СУБД не дозволить створити таблицю з первинним ключем, який має одне або кілька полів можуть мати порожнє значення.
Операторsql checkзабезпечує обмеження за значенням, яке визначає умову, якій має задовольняти значення поля, що вводиться в таблицю. Будь-яка спроба модифікувати або вставити в поле значення, яке могло б порушити умову обмеження, буде відхилено.
Є два основних типи обмеженьcheck- обмеження стовпця та обмеження таблиці. Відмінність між ними полягає в тому, що обмеження стовпця застосовується тільки до індивідуальних стовпців, тоді як обмеження таблиці може застосовуватися до груп одного і більше стовпців. Обмеження таблиці розміщується після визначення всіх полів. Обмеження значення стовпця розміщується після визначення типу даних і перед комою.
Синтаксис "check sql syntax"
Синтаксис обмеження за значенням "check sql syntax" має такий вигляд:
У наведеному прикладі таблиця кандидатів на вакантну посаду включає обмеження значень для 2-х полів та одне обмеження на таблицю. Іменоване обмеження на таблицю"chkExperiencePost" створено оператором CONSTRAINT. Умова розміщення запису у таблиці - вік кандидата не більше 25. 35 років із досвідом роботи на посаді менеджера щонайменше 3-х років.
У MySQL операторsql checkне використовується. Необхідно використовувати операториenumабоset.
Значення поля за промовчанням, default value
При визначенні поля таблиці можна вказати значення за промовчанням. Наприклад, для поля "підлога співробітника" можна визначити значення за промовчанням ("sql default value"). При визначенні стандартного значення можна використовувати функції СУБД. Як правило, це широко використовується при визначенні значення дати запису.
Функції роботи з часом для різних СУБД можуть відрізнятись. Дивіться документацію.
Тип перерахування, MySQL ENUM
Тип перерахування enum використовується при визначенні поля таблиці MySQL і обмежує його значення списком допустимихenum values, явно перерахованих у визначенні стовпця в момент створення таблиці.
Синтакіс ENUM
Значеннямenumтакож може бути порожній рядок ("") або NULL за певних умов :
- якщо в поле вставляється некоректне значення в стовпець з типомenum, то буде вставлено порожній рядок, що вказує на помилкове значення. Цей рядок відрізняється від "звичайного" порожнього рядка за тією ознакою, що він має цифрове значення, що дорівнює 0.
- якщо поле з типомenumвизначено як NULL, тоді NULL також є допустимим значенням стовпця і значення за замовчуванням буде NULL. Якщо enum визначається як NOT NULL, то за замовчуванням є перший елемент зі списку допустимих значень.
Кожне значення перерахуванняenumмає індекс:
- всі значення зсписку допустимих елементівenum valuesу специфікації стовпця пронумеровані, починаючи з 1;
- індексом значення NULL є саме NULL;
- індексне значення порожнього значення є 0.
Можна використовувати наступний SQL запит, щоб знайти рядки, в яких були встановлені неприпустимі дляenumзначення:
Наприклад, стовпець, визначений якenum("один", "два", "три"), може мати будь-яке з перелічених у таблиці значень.