90 lines
2.2 KiB
Markdown
90 lines
2.2 KiB
Markdown
|
---
|
||
|
title: SQL CHECK Constraint
|
||
|
localeTitle: Restricción de SQL CHECK
|
||
|
---
|
||
|
La restricción CHECK se usa para limitar el rango de valores que se puede colocar en una columna.
|
||
|
|
||
|
Si define una restricción CHECK en una sola columna, solo se permiten ciertos valores para esta columna.
|
||
|
|
||
|
Si define una restricción CHECK en una tabla, puede limitar los valores en ciertas columnas basándose en valores en otras columnas en la fila.
|
||
|
|
||
|
### SQL CHECK en CREATE TABLE
|
||
|
|
||
|
El siguiente SQL crea una restricción CHECK en la columna "Edad" cuando se crea la tabla "Personas". La restricción CHECK asegura que no se puede tener a ninguna persona menor de 18 años:
|
||
|
|
||
|
**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)
|
||
|
);
|
||
|
```
|
||
|
|
||
|
Para permitir la denominación de una restricción CHECK y para definir una restricción CHECK en varias columnas, use la siguiente sintaxis 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 en ALTER TABLE
|
||
|
|
||
|
Para crear una restricción CHECK en la columna "Edad" cuando la tabla ya está creada, use el siguiente SQL:
|
||
|
|
||
|
**MySQL / SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
```sql
|
||
|
ALTER TABLE Persons
|
||
|
ADD CHECK (Age>=18);
|
||
|
```
|
||
|
|
||
|
Para permitir la denominación de una restricción CHECK y para definir una restricción CHECK en varias columnas, use la siguiente sintaxis SQL:
|
||
|
|
||
|
**MySQL / SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
```sql
|
||
|
ALTER TABLE Persons
|
||
|
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
|
||
|
```
|
||
|
|
||
|
### DROP una restricción CHECK
|
||
|
|
||
|
Para eliminar una restricción CHECK, use el siguiente SQL:
|
||
|
|
||
|
**SQL Server / Oracle / MS Access:**
|
||
|
|
||
|
```sql
|
||
|
ALTER TABLE Persons
|
||
|
DROP CONSTRAINT CHK_PersonAge;
|
||
|
```
|
||
|
|
||
|
**MySQL:**
|
||
|
|
||
|
```sql
|
||
|
ALTER TABLE Persons
|
||
|
DROP CHECK CHK_PersonAge;
|
||
|
|
||
|
```
|