目录
一、数据库的约束类型介绍
约束是数据库的一个重要机制,保证数据的完整性。在创建表时,每列的数据类型能完成一部分的数据校验工作,今天所讲述的约束也能实现一部分的数据校验工作。
约束类型 | 解释 |
not null | 指定该列不能存储空值 |
unique | 规定该列的每一行必须有唯一的值 |
default | 没有给列赋值时的默认值 |
primary key | not null 和 unique的结合,记录的唯一身份标识,类似于身份证,不能为空也不能重复 一张表只能有一个主键,但是可以使用多个列作为一个联合主键 如果主键是一个单纯的整数,可以使用mysql提供的自增主键,即auto_increment. |
foreign key | 保证一个表中的数据匹配另一个表中的值的参照完整性 |
check | 保证列中的值符合指定的条件,对于MySQL数据库来说,对check子句分析,但是忽略check子句。 |
二、利用约束条件建立学生信息数据库
学生信息数据库,主要包含学生表、课程表和成绩表。学生和课程存在多对多的关系,选择成绩表作为中间表。
三张表创建完后,往表中插入数据
在插入数据时,学生表和课程表必须先插入数据,插入完成后,才能往成绩表中插入数据。
score表中的student_id必须在students表中的id这一列中存在,course_id必须在course表中的id这一列存在。如果不存在,插入会报错。如course表中不存在id=1004的课程,在成绩表中插入course_id=1004,会报错。