mysql 笔记7 ---外键(了解即可,开发中一般不会用到)

create table `grade`(
	`id` int(4) not null auto_increment comment '学号',
	`gradename` varchar(50) not null comment '年纪名称',
	primary key (`id`)
)engine=innodb default charset=utf8
--在创建表的时候增加外键约束
CREATE TABLE `student` (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` varchar(32) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` varchar(2) NOT NULL DEFAULT '女' COMMENT '性别',
  `birthday` datetime DEFAULT NULL COMMENT '生日',
  `address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱地址',
  `grade_id` int(4) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_grade_id` (`grade_id`),
  CONSTRAINT `FK_grade_id` FOREIGN KEY (`grade_id`) REFERENCES `grade` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

如果创建表的时候没有直接创建外键关系,我们就可以修改表,新增外键约束

alter table `student` add constraint `FK_grade_id` foreign key (`grade_id`) references `grade` (`id`)

建立外键关系后,添加student表的数据,字段grade_id必须是grade表中的id

以上操作都是物理外键,数据库级别的外键,不建议使用!

一般在开发中我们用程序实现外键关系即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值