SQL ограничения са съществени елементи в дизайн на релационна база данни които осигуряват почтеност точност и надеждност от данните, съхранявани в база данни. Чрез налагане на специфични правила върху колоните на таблицата, SQL ограниченията спомагат за поддържането на последователност на данните, предотвратявайки невалидни въвеждания на данни и оптимизирайки производителността на заявките.
В тази статия ще обясним най-често срещаните SQL ограничения в детайли, предоставяйки ясни примери и обяснявайки как да ги приложите ефективно.
Какво представляват SQL ограниченията?
SQL ограничения се прилагат правила колони или маси в а релационна база данни за ограничаване на типа данни, които могат да бъдат вмъкнат актуализиран или изтрити . Тези правила гарантират, че данните са валидни, последователни и се придържат към бизнес логиката или изисквания към базата данни . Ограниченията могат да бъдат наложени по време на създаването на таблица или по-късно с помощта на ALTER TABLE изявление. Те играят жизненоважна роля за поддържане на качеството и целостта на вашата база данни.
Видове SQL ограничения
SQL предоставя няколко вида ограничения за управление на различни аспекти на целостта на данните. Тези ограничения са съществени, за да се гарантира, че данните отговарят на изискванията на точност последователност и валидност . Нека преминем през всеки от тях с подробни обяснения и примери.
1. Ограничение NOT NULL
The НЕ НУЛЕВ ограничението гарантира, че колона не може да съдържа NULL стойности. Това е особено важно за колони, където дадена стойност е от съществено значение за идентифициране на записи или извършване на изчисления. Ако една колона е дефинирана като НЕ НУЛЕВ всеки ред трябва да включва стойност за тази колона.
Пример:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Обяснение: В горния пример и дветеIDиNAMEколоните се дефинират с НЕ НУЛЕВ ограничение, което означава, че всеки ученик трябва да има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 стойности. Това обикновено се използва за колоната, която ще служи като идентификатор на записите.
Пример:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
Обяснение: В този случай наIDе зададена като първичен ключ, който гарантира, че ID на всеки студент е уникален и не може да бъде NULL.
4. Ограничение FOREIGN KEY
А ВЪНШЕН КЛЮЧ ограничението свързва колона в една таблица с първичен ключ в друга таблица. Тази връзка помага да се поддържа референтна цялост като гарантира, че стойността в външен ключ колона съответства на валиден запис в референтната таблица.
Таблица с поръчки:
| O_ID | ПОРЪЧКА_NO | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Таблица с клиенти:
| C_ID | ИМЕ | АДРЕС |
|---|---|---|
| 1 | РАМЕШ | ДЕЛХИ |
| 2 | СУРЕШ | НОИДА |
| 3 | ДАРМЕШ | ГУРГАОН |
Както виждаме ясно, че полето C_ID в Таблица с поръчки е първичен ключ в таблицата Клиенти, т.е. уникално идентифицира всеки ред в Клиенти маса. Следователно това е външен ключ в таблицата с поръчки.
Пример:
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. Ограничение ПО ПОДРАЗБИРАНЕ
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 и INDEX можете да гарантирате, че вашата база данни е оптимизирана за точност и изпълнение .
Създаване на тест