
MySQL数据完整性约束:主键、唯一、非空与外键详解
版权申诉
64KB |
更新于2024-09-11
| 92 浏览量 | 5 评论 | 举报
1
收藏
本文主要介绍了MySQL数据库中四种重要的约束类型:主键约束、唯一约束、非空约束和外键约束,以及如何在创建和修改表结构时应用这些约束。
1. 非空约束 (Not Null)
非空约束用于确保数据库表中的某个字段不允许存储NULL值,以保证数据的完整性。在创建表时,可以通过`NOT NULL`关键字来指定某字段为非空约束。例如:
```sql
CREATE TABLE stu (
id INT,
NAME VARCHAR(20) NOT NULL -- name字段为非空
);
```
如果需要在表创建后添加或移除非空约束,可以使用`ALTER TABLE`语句:
```sql
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; -- 添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20); -- 移除非空约束
```
2. 唯一约束 (Unique)
唯一约束保证字段的每个值在表中都是唯一的,但允许出现NULL值。在创建表时,可以使用`UNIQUE`关键字来设置唯一约束:
```sql
CREATE TABLE stu (
id INT,
phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束
);
```
若要删除唯一约束,可以使用`ALTER TABLE`配合`DROP INDEX`:
```sql
ALTER TABLE stu DROP INDEX phone_number; -- 删除唯一约束
```
在表创建后,可以使用`MODIFY`来添加唯一约束:
```sql
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
```
3. 主键约束 (Primary Key)
主键约束是同时具备唯一性和非空性的约束,它是表中记录的唯一标识。创建表时,使用`PRIMARY KEY`来指定主键:
```sql
CREATE TABLE stu (
id INT PRIMARY KEY, -- 给id添加主键约束
name VARCHAR(20)
);
```
删除主键约束需要使用`ALTER TABLE`和`DROP PRIMARY KEY`:
```sql
ALTER TABLE stu DROP PRIMARY KEY; -- 删除主键约束
```
若需在表创建后添加主键,可以修改字段定义:
```sql
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
```
4. 外键约束 (Foreign Key)
外键约束用于关联两个表,确保数据的一致性和参照完整性。它将一个表的字段与另一个表的主键关联。创建外键约束通常在创建表时进行,语法如下:
```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`主键。若要在创建表后添加外键约束,需要先创建索引,然后添加外键:
```sql
ALTER TABLE orders ADD INDEX idx_customer_id (customer_id);
ALTER TABLE orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id);
```
删除外键约束使用`ALTER TABLE`和`DROP FOREIGN KEY`:
```sql
ALTER TABLE orders DROP FOREIGN KEY fk_customer;
```
总结来说,这些约束在数据库设计中扮演着关键角色,它们帮助维护数据的准确性和一致性,是数据库管理系统的重要组成部分。正确使用这些约束能够提升数据库的性能和数据质量。
相关推荐






资源评论

柏傅美
2025.05.13
文档清晰解释了MySQL各种约束,有助于维护数据表的结构和内容质量。

kdbshi
2025.03.22
详细介绍了四类约束的作用和使用方法,非常适合进行快速复习或培训。

南小鹏
2025.03.18
对于数据库初学者来说,本文档是学习MySQL约束功能的优秀入门资料。

陈游泳
2025.02.20
MySQL数据库中的关键数据完整性保障机制,涵盖主键、唯一、非空、外键约束,实用性强。

不能汉字字母b
2025.02.17
包含了创建表时的约束应用示例,非常符合实际开发需求。👣

weixin_38718413
- 粉丝: 9
最新资源
- 自主开发的H264视频播放器源代码
- 掌握SSH框架:中国移动业务管理系统源码解析
- JSF开发必备jar包集合:从commons到standard详解
- ASP.NET多语言网页实现的本地化示例程序解析
- C#与SQL打造小区物业管理系统解决方案
- 获取在线求职系统完整代码的方法
- 深入学习单片机C51的30章精华内容
- BCGControlBar V10.0向导的中文化解决方案
- Delphi开发的校园人事管理系统设计与实现
- 汉字转拼音实现代码解析与液晶屏字符显示应用
- 创建简易Flash倒计时时钟网站调用方案
- 基于Json和Mysql的Ext组合登录系统开发
- JAVA聊天系统实现公私聊功能及图片文件发送
- Morpheus Photo Animation Suite:专业动画制作神器
- 使用LINQ to SQL实现三层架构Web应用系统
- 免费版P2Pover-V3:局域网服务器控制工具
- 计算机故障解决技巧与系统优化指南
- Struts框架下拉菜单集合绑定教程与示例下载
- MyEclipse项目源码整合Spring+Struts+Hibernate技术
- Nokia S60系列手机小游戏发布
- 全面掌握Microsoft MSDN网页开发技术手册
- RegRun监控工具:保护Windows系统安全
- 掌握Visual Basic 6.0基础与案例分析
- 硕士研究生专业英语课件介绍与应用