Ограничения (constraints) в SQL — это правила, применяемые к данным в таблицах для обеспечения целостности и согласованности информации в базе данных. Они представляют собой механизм принудительного соблюдения бизнес-правил на уровне СУБД.
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100)
)
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
EmployeeID INT REFERENCES Employees(EmployeeID)
)
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductCode VARCHAR(20) UNIQUE
)
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Age INT CHECK (Age >= 16)
)
CREATE TABLE Orders (
OrderDate DATETIME DEFAULT GETDATE()
)
CREATE TABLE Customers (
CustomerName VARCHAR(100) NOT NULL
)
CREATE TABLE Table1 (
ID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL
)
CREATE TABLE Table2 (
ID INT,
Name VARCHAR(50),
CONSTRAINT PK_Table2 PRIMARY KEY (ID),
CONSTRAINT CHK_Name CHECK (LEN(Name) > 2)
)
ALTER TABLE Table3
ADD CONSTRAINT FK_Table3_Table1
FOREIGN KEY (Table1ID) REFERENCES Table1(ID)
Порядок проверки:
Отложенная проверка (DEFERRABLE):
Отключение ограничений:
ALTER TABLE TableName NOCHECK CONSTRAINT ConstraintName
Всегда называйте ограничения явно:
CONSTRAINT PK_Employees PRIMARY KEY (EmployeeID)
Для сложных проверок используйте CHECK вместо триггеров
Используйте FOREIGN KEY для поддержания ссылочной целостности
Избегайте отключения ограничений в рабочей среде
Ограничения в SQL — это мощный инструмент обеспечения целостности данных, который должен быть в арсенале каждого профессионального разработчика БД. Они позволяют перенести бизнес-правила на уровень базы данных, обеспечивая согласованность информации независимо от приложения, которое с ней работает. Правильное использование ограничений значительно повышает надежность и качество данных в системе.