今天继续学习了数据库的增删改查:
– 数据完整性是指数据的一致性和正确性
• 数据完整性约束是一组完整性规则的集合。它定义了数据模型必须遵守的语义约束,也规定了根据数据模型所构建的数据库中数据内部及其数据相互间联系所必须满足的语义约束。
• 完整性约束是数据库系统必须遵守的约束,他先顶了根据数据模型所构建的数据库的状态以及状态变化,以便维护数据库中数据的正确性、有效性和相容性。
• 常见完整性约束:
– PRIMARY KEY 主码约束(主键)
– UNIQUE 唯一性约束
– NOT NULL 非空值约束
– AUTO_INCREMENT 用于整数列默认自增1
– UNSIGNED 无符号整数
– DEFAULT default_value 默认值约束
– DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列)
– ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)
– CHARACTER SET name 指定字符集(仅适用字符串)
• 数据表之间的关联/引用关系是依靠具体的主键(primary key)和外键(foreign key)建立起来的。
• 主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。
– 主键必须是唯一的
– 主键应该是紧凑的,因此整数类型比较适合
• 外键:引用另外一个数据表的某条记录。
– 外键列类型尽可能与主键列类型保持一致
– 外键列应该加上NOT NULL
1、当主表中没有对应的记录时,不能将记录添加到子表
——成绩表中不能出现在学员信息表中不存在的学号;
2、不能更改主表中的值而导致子表中的记录孤立
——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;
3、子表存在与主表对应的记录,不能从主表中删除该行
——不能把有成绩的学员删除了
4、删除主表前,先删子表
——先删学员成绩表、后删除学员信息表