Обмеження 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 ви можете переконатися, що ваша база даних оптимізована для точність і продуктивність .
Створіть вікторину