外键的使用

外键主要用到的语句是:

FOREIGN KEY(sid) REFERENCES TO stu_info(id) ON DELETE CASCADE;

示例:
表1,stu_info表示学生信息;表2,stu_grades表示学生的考试成绩。当学生毕业之后,相关学生信息从stu_info删除之后,stu_grades中相关学生的成绩的记录也应该删除。

创建stu_info表

CREATE TABLE stu_info( id INT AUTO_INCREMENT PRIMARY KEY, sex TINYINT NOT NULL, name VARCHAR(10) NOT NULL )DEFAULT CHARSET=utf8 AUTO_INCREMENT=20110000;

创建stu_grades表

CREATE TABLE stu_grades ( id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, grade int(11) NOT NULL, cid INT NOT NULL, sid int(11) NOT NULL, FOREIGN KEY (sid) REFERENCES stu_info (id) ON DELETE CASCADE ON UPDATE CASCADE )DEFAULT CHARSET=utf8

插入数据:

INSERT INTO stu_info(sex,name) VALUES(1,'李强'),(0,'刘亦菲');
INSERT INTO stu_grades(grade,cid,sid) VALUES(100,1,20110001),(89,1,20110002),(90,2,20110001),(78,2,20110002);

我们可以发现,修改了stu_info表中的id之后,stu_grades表中的sid也随之更高;删除了stu_info表中的学生信息之后,stu_grades表中相应学生的成绩也删除了。

你可能感兴趣的:(MySQL)