外键规则:
外键 在一个表中外键是用来与另一个表的主键关联的
主键 不能为空 唯一 检查
外键有两种情况:
1.不加外键约束
可以任意的对表数据进行操作,即使两个表中的数据对应不上也没有关系
2.添加外键约束
添加外键约束后,两张表操作时,不能导致外键列和主键列对应关系不成立
添加外键约束:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (添加约束键的列) REFERENCES 关联表名(关联列名)
删除外键约束:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称
CREATE TABLE major(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
)
--添加外键约束
ALTER TABLE student ADD CONSTRAINT fk_student_major_majorid FOREIGN KEY (majorid)REFERENCES major(id)
-- 删除外键约束
ALTER TABLE student DROP FOREIGN KEY fk_student_major_majorid
-- 学生选课 一个学生至少选择两个课程
-- 课程信息表 多对多关系
CREATE TABLE course(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
)
-- 添加一个学生选课表 学生和课程关系表 放一个学生学号外键,放一个课程外键
CREATE TABLE student_course(
stunumber INT,
courseid INT
)
ALTER TABLE student_course ADD CONSTRAINT fk_student_course_stunumber FOREIGN KEY(stunumber)REFERENCES student(number)
ALTER TABLE student_course ADD CONSTRAINT fk_student_course_courseid FOREIGN KEY(courseid)REFERENCES course(id)
table: student