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
以上操作都是物理外键,数据库级别的外键,不建议使用!
一般在开发中我们用程序实现外键关系即可