Найти тему

Ограничение CHECK

Ограничение CHECK сужает диапазон значений, который может быть помещен в столбец. Если вы определяете ограничение CHECK для одного столбца, оно допускает только определенные значения для этого столбца. Если вы определяете ограничение CHECK для таблицы, оно может ограничить значения в определенных столбцах на основе значений в других столбцах в строке.

CHECK состоит из выражения или условия, которое должно быть выполнено для каждой строки в таблице. Если выражение возвращает значение "истина", то операция выполнится успешно, иначе она будет прервана и СУБД выдаст ошибку.

Рассмотрим пример: представим, что у нас есть таблица "Employees", в которой есть столбец "Age", предназначенный для значения возраста каждого сотрудника. Мы хотим установить ограничение, чтобы значения в этом столбце не превышали 65 лет.

Для этого мы можем использовать ограничение CHECK следующим образом:

```

CREATE TABLE Employees (

EmployeeID INT PRIMARY KEY,

FirstName VARCHAR(50),

LastName VARCHAR(50),

Age INT CHECK (Age <= 65)

);

```

В этом примере мы определяем ограничение CHECK для столбца "Age" с помощью выражения "Age <= 65". Теперь СУБД будет контролировать каждое вставленное или измененное значение в этом столбце и прерывать операции, если значение превышает 65.

Ограничение CHECK может быть использовано для создания более сложных правил, используя операторы условий и логические связки. Рассмотрим дополнительный пример:

```

CREATE TABLE Sales (

SaleID INT PRIMARY KEY,

Product VARCHAR(50),

Quantity INT,

Price DECIMAL(10, 2),

TotalPrice DECIMAL(10, 2) CHECK (TotalPrice = Quantity * Price AND TotalPrice > 0)

);

```

В данном случае мы определяем ограничение CHECK для столбца "TotalPrice", используя выражение "TotalPrice = Quantity * Price AND TotalPrice > 0". Это означает, что СУБД будет проверять, что значение в столбце "TotalPrice" равно произведению значений в столбцах "Quantity" и "Price", и в то же время больше нуля.

Такое ограничение может быть полезно, чтобы гарантировать правильность расчетов стоимости каждой отдельной продажи.

В заключение, ограничение CHECK позволяет нам контролировать значения, вставляемые или изменяемые в столбцах таблицы. Оно предоставляет возможность создавать различные условия и проверять их перед выполнением операций. Это мощный инструмент для обеспечения целостности данных и предотвращения ошибок.