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

90 lines
3.0 KiB
Markdown
Raw Normal View History

2018-10-12 16:00:59 -04:00
---
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;
```