SQL CHECK約束用于限制列中的值必須滿足指定的條件。CHECK約束可以在創建表時定義,也可以在修改表時添加。
CHECK約束的語法如下:
```sql
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
```
其中,table_name是要添加約束的表名,constraint_name是約束的名稱(可選),condition是一個邏輯表達式,用于定義該列的取值范圍。
以下是一些CHECK約束的示例:
1. 限制age列的取值范圍為18至65歲之間:
```sql
ALTER TABLE employees
ADD CONSTRAINT check_age CHECK (age >= 18 AND age <= 65);
```
2. 限制gender列的取值只能為'M'或'F':
```sql
ALTER TABLE employees
ADD CONSTRAINT check_gender CHECK (gender IN ('M', 'F'));
```
3. 限制salary列的取值不能為負數:
```sql
ALTER TABLE employees
ADD CONSTRAINT check_salary CHECK (salary >= 0);
```
4. 限制birth_date列的取值必須在'1980-01-01'和'2000-12-31'之間:
```sql
ALTER TABLE employees
ADD CONSTRAINT check_birth_date CHECK (birth_date >= '1980-01-01' AND birth_date <= '2000-12-31');
```
注意,CHECK約束只能應用于單個列,如果需要對多個列添加約束,可以使用UNIQUE約束或FOREIGN KEY約束。