数据库_外键foreign key

定义

  • 如果一个实体的某个字段指向另一个实体的主键,就称为外键。
  • 被指向的实体,称之为主实体(主表),也叫父实体(父表) 。
  • 负责指向的实体,称之为从实体(从表) ,也叫子实体 (子表)

注:对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则项写成功,如果不存在则填写失败并报错

语法

方式一:创建数据表的时候设置外键约束

create table class(

id int unsigned primary key auto_increment,

name varchar(10)

);

create table stu(
name varchar(10),
class_id int unsigned,
foreign key(class_id) references class(id)

);

foreign key(自己的字段) references 主表(主表字段)

方式二:对于已经存在的数据表设置外键约束

alter table 从表名 add foreign key (从表字段) references 主表名(主表字段);
alter table stu add foreign key (class_id) references class(1d);

查看外键

show create table 表名

删除外键

--需要先获取外键的束名称,在创建表的语句中找到CONSTRAINT,它后面的就是外键的名称

show create table stu;


-- 获取名称之后就可以根据名称来删除外键约束
alter table 表名 drop foreign key 外键名称;
alter table stu drop foreign key stu_ibfk_1;

注:在实际开发中,很少会使用到外键月湖,会极大的降低表更新的效果 

你可能感兴趣的:(数据库,数据库,oracle,sql)