83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: SQL CHECK Constraint | ||
|  | --- | ||
|  | 
 | ||
|  | The CHECK constraint is used to limit the value range that can be placed in a column. | ||
|  | 
 | ||
|  | If you define a CHECK constraint on a single column it allows only certain values for this column. | ||
|  | 
 | ||
|  | If you define a CHECK constraint on a table it can limit the values in certain columns based on values in other columns in the row. | ||
|  | 
 | ||
|  | ### SQL CHECK on CREATE TABLE
 | ||
|  | 
 | ||
|  | The following SQL creates a CHECK constraint on the "Age" column when the "Persons" table is created. The CHECK constraint ensures that you can not have any person below 18 years: | ||
|  | 
 | ||
|  | **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) | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | To allow naming of a CHECK constraint, and for defining a CHECK constraint on multiple columns, use the following SQL syntax: | ||
|  | 
 | ||
|  | **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 on ALTER TABLE
 | ||
|  | 
 | ||
|  | To create a CHECK constraint on the "Age" column when the table is already created, use the following SQL: | ||
|  | 
 | ||
|  | **MySQL / SQL Server / Oracle / MS Access:** | ||
|  | ```sql | ||
|  | ALTER TABLE Persons | ||
|  | ADD CHECK (Age>=18); | ||
|  | ``` | ||
|  | 
 | ||
|  | To allow naming of a CHECK constraint, and for defining a CHECK constraint on multiple columns, use the following SQL syntax: | ||
|  | 
 | ||
|  | **MySQL / SQL Server / Oracle / MS Access:** | ||
|  | ```sql | ||
|  | ALTER TABLE Persons | ||
|  | ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes'); | ||
|  | ``` | ||
|  | ### DROP a CHECK Constraint
 | ||
|  | 
 | ||
|  | 
 | ||
|  | To drop a CHECK constraint, use the following SQL: | ||
|  | 
 | ||
|  | **SQL Server / Oracle / MS Access:** | ||
|  | ```sql | ||
|  | ALTER TABLE Persons | ||
|  | DROP CONSTRAINT CHK_PersonAge; | ||
|  | ``` | ||
|  | 
 | ||
|  | **MySQL:** | ||
|  | ```sql | ||
|  | ALTER TABLE Persons | ||
|  | DROP CHECK CHK_PersonAge;  | ||
|  | ``` |