# DBMS 中的域约束

> 原文： [https://beginnersbook.com/2015/04/domain-constraints-in-dbms/](https://beginnersbook.com/2015/04/domain-constraints-in-dbms/)

表是 DBMS 是一组包含数据的行和列。表中的列具有唯一的名称，通常在 DBMS 中称为**属性**。域是表中属性允许的唯一值集。例如，一个月的域可以接受 1 月，2 月...... 12 月作为可能的值，整数域可以接受负数，正数和零的整数。

**定义**：域约束是**用户定义的数据类型**，我们可以这样定义它们：

域约束=数据类型+约束（`NOT NULL` / `UNIQUE` / `PRIMARY KEY` / `FOREIGN KEY` / `CHECK` / `DEFAULT`）

**示例**：

例如，我想创建一个表`student_info`，其中`stu_id`字段的值大于 100，我可以创建一个域和表，如下所示：

```
create domain id_value int
constraint id_test
check(value > 100);

create table student_info (
stu_id id_value PRIMARY KEY,
stu_name varchar(30),
stu_age int
);
```

**另一个例子**：

我想创建一个表`bank_account`，其中`account_type`字段的值为`checks`或`save`：

```
create domain account_type char(12)
constraint acc_type_test
check(value in ("Checking", "Saving"));

create table bank_account (
account_nbr int PRIMARY KEY,
account_holder_name varchar(30),
account_type account_type
);
```