freeCodeCamp/guide/russian/sql/sql-check-constraint/index.md

90 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: SQL CHECK Constraint
localeTitle: Ограничение SQL CHECK
---
Ограничение CHECK используется для ограничения диапазона значений, который может быть помещен в столбец.
Если вы определяете ограничение CHECK для одного столбца, оно допускает только определенные значения для этого столбца.
Если вы определяете ограничение CHECK для таблицы, оно может ограничить значения в определенных столбцах на основе значений в других столбцах в строке.
### SQL CHECK на CREATE TABLE
Следующий SQL создает ограничение CHECK в столбце «Возраст», когда создается таблица «Лица». Ограничение CHECK гарантирует, что у вас не может быть человек старше 18 лет:
**MySQL:**
```sql
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
```
**SQL Server / Oracle / MS Access:**
```sql
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
```
Чтобы разрешить именовать ограничение CHECK и определить ограничение CHECK для нескольких столбцов, используйте следующий синтаксис SQL:
**MySQL / SQL Server / Oracle / MS Access:**
```sql
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
```
### SQL CHECK на ALTER TABLE
Чтобы создать ограничение CHECK в столбце «Возраст», когда таблица уже создана, используйте следующий SQL:
**MySQL / SQL Server / Oracle / MS Access:**
```sql
ALTER TABLE Persons
ADD CHECK (Age>=18);
```
Чтобы разрешить именовать ограничение CHECK и определить ограничение CHECK для нескольких столбцов, используйте следующий синтаксис SQL:
**MySQL / SQL Server / Oracle / MS Access:**
```sql
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
```
### УБЕДИТЕСЬ ПРОВЕРИТЬ КОНКУРС
Чтобы удалить ограничение CHECK, используйте следующий SQL:
**SQL Server / Oracle / MS Access:**
```sql
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
```
**MySQL:**
```sql
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
```