数据完整性补充
前言
在MySQL中,可以通过以下几种方式来确保数据的完整性:
-
主键约束(Primary Key Constraint):通过在表中定义一个主键,确保每一行数据都具有唯一标识。主键可以由一个或多个列组成,并且不允许为空值。这样可以防止重复数据和无效数据的插入。
-
唯一约束(Unique Constraint):通过在表中定义唯一约束,确保特定列或列组合中的值是唯一的。这样可以防止重复数据的插入。
-
外键约束(Foreign Key Constraint):通过在表之间建立关联关系,确保参考关系的完整性。外键约束可以确保在关联表中的值必须与主表中的值匹配或为空。这样可以保持数据的一致性,并防止无效的引用关系。
-
非空约束(Not Null Constraint):通过在表的列上定义非空约束,确保该列不允许为空值。这样可以强制要求必须为该列提供有效值,防止插入无效数据。
-
检查约束(Check Constraint):通过在表中定义检查约束,限制列中允许的值范围或条件。这样可以确保插入的数据满足指定的条件,防止插入无效数据。
函数表达
- 创建students数据库,在该数据库下创建表stu,并同时创建约束
Create databease students create table stu(学号 int not null primary key auto_increment,姓名 char(8), 性别 char(2) default '男',出生日期 date) ENGINE=InnoDB DEFAULT CHARSET=utf8;3.
2、创建表sc,并同时创建约束。
create table sc (学号 int not null,课号 char(4) not null,成绩 decimal(5,2) check(成绩 Between 0 and 100), primary key(学号,课号),constraint fk_sno foreign key(学号) references stu(学号)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、删除sc表的外键约束fk_cno,fk_sno。
alter table sc drop foreign key fk_cno alter table sc drop foreign key fx_sno;
4、上面都是在创建表时连带创建约束的,单独修改或创建约束可以看我另外的一篇博客
总结
通过结合使用这些约束,可以在数据库层面确保数据的完整性和一致性。这些约束可以在表的定义时进行设置,或者在表已创建后通过
ALTER TABLE
语句进行修改。使用适当的约束可以保证数据库中的数据始终保持有效和一致。