-- 第12小节 数据库外键
-- 第一张表
CREATE TABLE IF NOT EXISTS`grade`(
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级',
`gradename` VARCHAR(18) NOT NULL COMMENT '年级名称',
PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-- 第二张表
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`gradeid` INT(10) NOT NULL COMMENT '年级',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-- 创建表时无外键关系
ALTER TABLE `student`
ADD CONSTRAINT `fk_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`)
-- alter table 表名 add constraint 约束名 foreign key(作为外键的列)reference 哪个表(`哪个字段`)
-- 以上的操作都是物理外键,数据库级别的外键,不建议使用
-- 最佳的方法 是用程序去实现