在SQL中,CHECK約束用于限制表中列的取值范圍。它可以用于檢查特定條件是否為真,并只允許滿足條件的值插入到表中。
使用CHECK約束,可以在創建表時或者在修改表結構時添加。下面是使用CHECK約束的一些示例:
1. 創建表時添加CHECK約束:
```sql
CREATE TABLE students (
id INT,
name VARCHAR(100),
age INT,
grade CHAR(1),
CONSTRAINT check_age CHECK (age >= 0 AND age <= 120),
CONSTRAINT check_grade CHECK (grade IN ('A', 'B', 'C', 'D', 'F'))
);
```
在上述示例中,CHECK約束被用于限制`age`列的取值范圍在0到120之間,并限制`grade`列只能取'A'、'B'、'C'、'D'或者'F'中的一個值。
2. 修改表結構時添加CHECK約束:
```sql
ALTER TABLE students
ADD CONSTRAINT check_age CHECK (age >= 0 AND age <= 120);
```
在上述示例中,CHECK約束被用于給已存在的表`students`添加一個限制條件,限制`age`列的取值范圍在0到120之間。
無論是在創建表時還是在修改表結構時,使用CHECK約束都可以通過指定一個條件表達式來限制列的取值范圍。如果插入或更新操作違反了CHECK約束的條件,將會拋出一個錯誤。