在SQL语言中什么叫表级完整性约束名,能举个例子吗
时间: 2024-05-03 20:18:18 浏览: 193
完整性约束-陈阳.sql
在SQL语言中,表级完整性约束是指用于保证表中数据完整性的规则。这些规则可以限制表中某些列的取值范围、要求某些列的取值必须唯一、或者要求某些列的取值满足特定的条件等。
例如,假设我们有一个名为“students”的表,其中包含学生的姓名(name)、年龄(age)和性别(gender)等列。为了保证数据的完整性,我们可以定义以下表级完整性约束:
1. NOT NULL约束:要求姓名、年龄和性别列都不能为空。
```
CREATE TABLE students (
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL
);
```
2. UNIQUE约束:要求姓名列的取值必须唯一。
```
CREATE TABLE students (
name VARCHAR(50) UNIQUE,
age INT,
gender VARCHAR(10)
);
```
3. CHECK约束:要求年龄列的取值必须大于等于18,小于等于60。
```
CREATE TABLE students (
name VARCHAR(50),
age INT CHECK (age >= 18 AND age <= 60),
gender VARCHAR(10)
);
```
在这些约束中,约束名通常是可选的,但如果需要删除或修改这些约束,约束名则是必需的。例如,我们可以给上面的CHECK约束命名为“age_limit”,然后在需要修改或删除这个约束时使用这个名字:
```
CREATE TABLE students (
name VARCHAR(50),
age INT CONSTRAINT age_limit CHECK (age >= 18 AND age <= 60),
gender VARCHAR(10)
);
-- 修改约束
ALTER TABLE students
DROP CONSTRAINT age_limit;
-- 删除约束
ALTER TABLE students
ADD CONSTRAINT age_limit CHECK (age >= 20 AND age <= 50);
```
阅读全文