在MySQL中怎么创建设置表约束
时间: 2024-10-21 20:05:21 浏览: 23
在MySQL中,表约束是用来保证数据完整性和一致性的规则,可以防止无效的数据插入或更新操作。以下是一些常用的表约束类型以及如何创建:
1. **唯一约束(UNIQUE)**:确保列的值在整个表中是唯一的。例如,创建一个唯一的电子邮件地址字段:
```sql
CREATE TABLE Users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL
);
```
2. **主键约束(PRIMARY KEY)**:确定每一行的唯一标识,不允许有重复的值,并且不能为空:
```sql
CREATE TABLE Employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT
);
```
3. **外键约束(FOREIGN KEY)**:确保引用另一个表的列值存在,如部门ID引用另一张部门表的ID:
```sql
CREATE TABLE Departments (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE Employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT,
FOREIGN KEY (department_id) REFERENCES Departments(id)
);
```
4. **检查约束(CHECK)**:验证特定列的取值范围或条件,例如年龄必须大于0小于150:
```sql
CREATE TABLE Students (
id INT PRIMARY KEY,
age INT CHECK (age > 0 AND age < 150)
);
```
5. **默认值约束(DEFAULT)**:为NULL列提供默认值:
```sql
CREATE TABLE Orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
quantity INT DEFAULT 1
);
```
要添加约束,可以在`CREATE TABLE`语句中直接指定,或者使用`ALTER TABLE`命令在表已经创建后添加。
阅读全文