外键的使用

外键主要用到的语句是:

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表中相应学生的成绩也删除了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值