SQL | обмеження

Обмеження SQL є важливими елементами в проектування реляційної бази даних що забезпечує цілісність точність і надійність даних, що зберігаються в базі даних. Застосовуючи певні правила для стовпців таблиці, обмеження SQL допомагають підтримувати узгодженість даних, запобігаючи недійсним записам даних і оптимізуючи продуктивність запитів.

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

Що таке обмеження SQL?

Обмеження SQL до яких застосовуються правила колонки або таблиці в а реляційна база даних щоб обмежити тип даних, які можуть бути вставлено оновлено або видалено . Ці правила гарантують, що дані є дійсними, узгодженими та відповідають бізнес-логіці або вимоги до бази даних . Обмеження можна застосувати під час створення таблиці або пізніше за допомогою ALTER TABLE заява. Вони відіграють важливу роль у підтримці якості та цілісності вашої бази даних.

Типи обмежень SQL 

SQL надає кілька типів обмежень для керування різними аспектами цілісності даних. Ці обмеження є важливими для того, щоб дані відповідали вимогам точність послідовність і термін дії . Розглянемо кожен із них із детальними поясненнями та прикладами.

1. Обмеження NOT NULL

The НЕ NULL обмеження гарантує, що стовпець не може містити значення NULL. Це особливо важливо для стовпців, де значення є важливим для ідентифікації записів або виконання обчислень. Якщо стовпець визначено як НЕ NULL кожен рядок повинен містити значення для цього стовпця.

приклад:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);

Пояснення: У наведеному вище прикладі обидва ID і NAME стовпці визначаються за допомогою НЕ NULL обмеження, що означає, що кожен студент повинен мати ID і NAME значення.

2. УНІКАЛЬНЕ обмеження

The УНІКАЛЬНИЙ обмеження гарантує, що всі значення в стовпці є різними в усіх рядках таблиці. На відміну від ПЕРВИННИЙ КЛЮЧ який вимагає унікальності та не допускає NULL, обмеження UNIQUE дозволяє NULL-значення, але все ще забезпечує унікальність для не-NULL записів.

приклад:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);

Пояснення : Ось ID Стовпець повинен мати унікальні значення, щоб два студенти не могли використовувати одне й те саме ID . Ми можемо мати більше одного УНІКАЛЬНИЙ обмеження в таблиці.

3. Обмеження PRIMARY KEY  

А ПЕРВИННИЙ КЛЮЧ обмеження є комбінацією НЕ NULL і УНІКАЛЬНИЙ обмеження. Він унікально ідентифікує кожен рядок у таблиці. Стіл може мати лише один ПЕРВИННИЙ КЛЮЧ і він не може приймати значення NULL. Зазвичай це використовується для стовпця, який слугуватиме ідентифікатором записів.

приклад:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);

Пояснення: У цьому випадку ID встановлюється як первинний ключ, що гарантує, що ідентифікатор кожного студента є унікальним і не може мати значення NULL.

4. Обмеження FOREIGN KEY

А ЗОВНІШНІЙ КЛЮЧ обмеження пов’язує стовпець в одній таблиці з первинний ключ в іншій таблиці. Ці стосунки допомагають підтримувати посилальна цілісність забезпечивши, щоб значення в зовнішній ключ стовпець відповідає дійсному запису в таблиці, на яку посилається.

Таблиця замовлень:

O_ID ORDER_NO C_ID
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Таблиця клієнтів:

C_ID ІМ'Я АДРЕСА
1 РАМЕШ ДЕЛІ
2 СУРЕШ НОЙДА
3 ДАРМЕШ ГУРГАОН

Як ми бачимо чітко, що поль C_ID в Таблиця замовлень є первинний ключ у таблиці «Клієнти», тобто вона унікально визначає кожен рядок у Клієнти стіл. Тому це зовнішній ключ у таблиці Orders. 

приклад:

 CREATE TABLE Orders   
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)

Пояснення: У цьому прикладі C_ID колонка в Orders таблиця - це зовнішній ключ, який посилається на C_ID колонка в Customers стіл. Це гарантує, що лише дійсні ідентифікатори клієнтів можна вставити в Orders стіл.

5. ПЕРЕВІРИТИ обмеження

The ПЕРЕВІРИТИ обмеження дозволяє нам вказати умову, якій мають задовольняти дані, перш ніж їх буде вставлено в таблицю. Це можна використовувати для забезпечення дотримання таких правил, як забезпечення того, що значення стовпця відповідає певним критеріям (наприклад, вік має бути більше 18)

приклад:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);

Пояснення: У наведеній вище таблиці ПЕРЕВІРИТИ обмеження гарантує, що лише студенти віком від 18 років можуть бути вставлені в таблицю.

6. Обмеження DEFAULT

The ЗА ПРОМОВЧАННЯМ обмеження надає значення за замовчуванням для стовпця, якщо значення не вказано під час вставки. Це корисно для забезпечення того, щоб певні стовпці завжди мали значуще значення, навіть якщо користувач його не вказав

приклад:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);

Пояснення: Тут, якщо значення не вказано AGE під час вставки значення за умовчанням 18 буде призначено автоматично.

Як вказати обмеження в SQL

Обмеження можна вказати під час процесу створення таблиці за допомогою CREATE TABLE заява. Крім того, обмеження можна змінити або додати до існуючих таблиць за допомогою ALTER TABLE заява.

Синтаксис для створення обмежень:

CREATE TABLE назва_таблиці

(

тип_даних стовпця1 [назва_обмеження]

тип_даних стовпця2 [назва_обмеження]

тип_даних стовпця3 [назва_обмеження]

...

);

Ми також можемо додати або видалити обмеження після створення таблиці:

Приклад додавання обмежень:

 ALTER TABLE Student   
ADD CONSTRAINT unique_student_id UNIQUE (ID);

Висновок

Обмеження SQL необхідні для підтримки цілісність даних і забезпечення узгодженості в реляційних базах даних. Розуміння та ефективне впровадження цих обмежень допоможе розробити надійні безпомилкові бази даних. За допомогою левериджів NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT and INDEX ви можете переконатися, що ваша база даних оптимізована для точність і продуктивність .

Створіть вікторину