MySQL数据完整性约束:主键、唯一、非空与外键详解

版权申诉
6 下载量 49 浏览量 更新于2024-09-11 1 收藏 64KB PDF 举报
本文主要介绍了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; ``` 总结来说,这些约束在数据库设计中扮演着关键角色,它们帮助维护数据的准确性和一致性,是数据库管理系统的重要组成部分。正确使用这些约束能够提升数据库的性能和数据质量。