ONSTRAINT mysql
时间: 2025-01-16 11:08:06 浏览: 32
### MySQL 中约束(CONSTRAINT)的使用方法
#### 主键约束 (Primary Key Constraint)
主键用于唯一标识表中的每一行记录。创建带有主键约束的表格时,可以定义某一列作为主键,并设置其属性为 `auto_increment` 来实现自动增长功能[^2]。
```sql
CREATE TABLE t_user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255)
);
```
当尝试向具有相同 ID 的表中插入新纪录时会违反主键约束的独特性原则而失败[^1]:
```sql
INSERT INTO emp4(id, emp_name, salary, email)
VALUES(1,'Tom',6000,'[email protected]');
```
上述语句会在存在ID=1的情况下引发错误,因为这违背了主键约束所规定的唯一性条件。
#### 非空约束 (NOT NULL Constraint)
非空约束确保某特定字段不允许为空值。任何试图将NULL赋给设置了此约束的字段都将被拒绝并抛出异常提示用户输入有效数据[^3]。
```sql
ALTER TABLE employees MODIFY COLUMN last_name VARCHAR(255) NOT NULL;
```
这条命令修改employees表里的last_name列为不可为空的状态。
#### 唯一性约束 (Unique Constraint)
除了主键外还可以通过单独声明 UNIQUE 关键字来保证某些列组合起来在整个表内也是唯一的。这对于像电子邮件地址这样的信息特别有用,因为它需要在全球范围内保持独一无二。
```sql
CREATE TABLE users (
user_id INT PRIMARY KEY,
email_address VARCHAR(255),
CONSTRAINT unique_email UNIQUE (email_address)
);
```
这段SQL代码建立了users表并将email_address设为了唯一性的限制。
#### 外键约束 (Foreign Key Constraint)
用来维持两个表之间的参照完整性关系。比如订单详情表可能有一个顾客编号(customer_id),它应该对应于客户资料表中存在的某个具体客户的ID号;这样做的好处是可以防止出现孤立无依的数据项以及保障关联实体间的一致性和准确性。
```sql
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
```
这里orders表里新增了一个名为customer_id的整数型字段,并将其设定成对外部customers表中customer_id列的一个引用。
#### 默认值约束 (Default Value Constraint)
允许开发者预先指定默认值,在未给出显式的初始值得情况下自动填充该缺省数值到相应位置上。
```sql
CREATE TABLE products (
product_code CHAR(8),
price DECIMAL(7, 2),
stock_quantity INTEGER DEFAULT 0
);
```
products表内的stock_quantity字段如果没有提供具体的数量,则会被赋予零这个预设好的起始量。
---
阅读全文
相关推荐







