Files
freeCodeCamp/guide/russian/sql/sql-check-constraint/index.md
2018-10-16 21:32:40 +05:30

90 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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;
```