Атрибут CHECK

Атрибут CHECK в MySQL використовується для обмеження значень, які можуть бути введені в стовпець таблиці. Він дозволяє задати умови перевірки для значень в стовпці, таким чином, щоб лише ті значення, які задовольняють вказану умову, могли бути внесені в таблицю. Якщо значення не відповідає умові, MySQL не дозволить виконати операцію, і буде згенерована помилка.
Умови перевіркиУмова перевірки може включати будь-які логічні вирази, що порівнюють значення стовпців із конкретними значеннями чи іншими стовпцями.
Гнучкість перевірокВи можете використовувати стандартні операції порівняння (наприклад, =, >, <, >=, <=, BETWEEN, IN, LIKE тощо) та логічні оператори (AND, OR, NOT).
Обмеження для запобігання некоректних данихЦе може бути корисним для того, щоб забезпечити певні правила або обмеження на дані, наприклад, гарантувати, що значення в полі є позитивним числом або що дата не перевищує поточну.

Основне використання CHECK

У цьому прикладі ми створюємо таблицю employees, в якій поле age повинно містити лише числа більші за 16, а поле salary повинно бути більше або рівне 1000.

CREATE TABLE employees (
    employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    employee_name VARCHAR(100) NOT NULL,
    age INT CHECK (age > 16),
    salary DECIMAL(10, 2) CHECK (salary >= 1000)
);
INSERT INTO employees (employee_name, age, salary)
VALUES ('John', 20, 1000);
INSERT INTO employees (employee_name, age, salary)
VALUES ('John', 15, 1001);
INSERT INTO employees (employee_name, age, salary)
VALUES ('John', 17, 999);

Перевірка за допомогою оператора IN

Ми можемо створювати більш складні умови для перевірок. Наприклад, можна гарантувати, що поле gender може бути лише “M” (male – чоловік) або “F” (female – жінка).

CREATE TABLE employees2 (
    employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    employee_name VARCHAR(100) NOT NULL,
    gender CHAR(1) CHECK (gender IN ('M', 'F'))
);
INSERT INTO employees2 (employee_name, gender)
VALUES ('Jenny', ‘F’);
INSERT INTO employees2 (employee_name, gender)
VALUES ('John', ‘M’);
INSERT INTO employees2 (employee_name, gender)
VALUES ('Jacky', ‘J’);

Перевірка за допомогою оператора BETWEEN

Ви можете комбінувати перевірки для числових значень, наприклад, щоб зарплата була в межах певного діапазону (між 1000 і 10000).

CREATE TABLE employees3 (
    employee_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    employee_name VARCHAR(100) NOT NULL,
    salary DECIMAL(10, 2) CHECK (salary BETWEEN 1000 AND 10000)
);
INSERT INTO employees3 (employee_name, salary)
VALUES ('Jenny', 10000);
INSERT INTO employees3 (employee_name, salary)
VALUES ('John', 1000);
INSERT INTO employees3 (employee_name, salary)
VALUES ('Jacky', 999);
INSERT INTO employees3 (employee_name, salary)
VALUES ('Franky', 10001);

Порівняння з іншими атрибутами

АтрибутОписВикористання
CHECKЗабезпечує, що значення в полі задовольняють певну умову.Наприклад, обмеження на значення (тільки позитивні числа, обмеження діапазону тощо).
NOT NULLГарантує, що поле не може містити значення NULL.Зазначає, що стовпець обов’язково має мати значення.
DEFAULTВстановлює значення за замовчуванням, якщо значення не задано при внесенні в таблицю.Використовується для автоматичного заповнення значенням за замовчуванням, якщо поле не заповнене.
UNIQUEЗабезпечує унікальність значень у стовпці.Гарантує, що всі значення в полі будуть унікальними.

Для додаткової візуалізації є відео:

День ухвалення Декларації про суверенітет і не тільки!

Stand WIth Ukraine!

Сьогодні, 16 липня, ми відзначаємо два важливі історичні моменти для нашої країни. 35 років тому Верховна Рада прийняла Декларацію про державний суверенітет України, що стало важливим етапом на шляху до відновлення незалежності. Це був сміливий крок до побудови справжньої суверенної держави, що має право на власний вибір і гідне майбутнє.

А рівно 6 років тому, 16 липня 2019 року, набув чинності Закон України “Про забезпечення функціонування української мови як державної”. Цей закон — став ще одним кроком до утвердження національної самобутності, розвитку культури та зміцнення єдності серед українців.

Обидва ці історичні моменти — символи нашого прагнення до свободи, гідності та розвитку. Українська мова є основою нашої самобутності.

Бажаю усім нам процвітання, впевненості у своєму майбутньому і перемоги.

Слава Україні!

З Днем Української Державності!

Борітеся - Поборете

Сьогодні ми відзначаємо важливий день, що нагадує нам про незламну силу духу нашого народу, його відданість свободі та незалежності. Україна – це наша культура, мова, традиції і мрія про майбутнє.

Бажаю кожному з нас гордості за свою країну, мудрості в прийнятті рішень і єдності в наших серцях. Нехай цей день буде нагадуванням, що наша незалежність і державність – це результат боротьби, праці та любові до рідної землі.

Слава Україні!