首页 > 数据库 >数据库-外键

数据库-外键

时间:2024-08-28 16:53:24浏览次数:23  
标签:ENGINE 数据库 外键 FOREIGN key table create

一、外键

定义:让一张表记录的数据不要太过于冗余,在数据库汇中对表的关系进行解耦,尽量让数据的单一化

二、外键作用:

保持数据的一致性和完整性

三、mysql 的存储引擎

(1)MyISAM 默认引擎

(2)innodb (外键需要用到innodb存储格式)

格式:

show table status from 库名 where name=表名

语句:

show table status from dcs where name="student"

截图:

图片

四、查看外键方法

(1)格式:

show create table表名;

语句:

show create table student ;

图片

(2)在navicat上查看外键

图片

五、外键实战

外键:FOREIGN key 单词

(1)在建表的过程中新建外键

f表:

create table f(id int(10) PRIMARY key,name varchar(20))ENGINE=INNODB ;

z表:

create table Z(Zid int(10) PRIMARY key,Zname varchar(20))ENGINE=INNODB ;

s表:

create table s(sid int(10)PRIMARY key,sname varchar(20),CONSTRAINT wj FOREIGN key(sid) REFERENCES f(id))ENGINE=INNODB ;

CONSTRAINT 外键名 ( 自己定义 CONSTRAINT 指定外键名)

FOREIGN key 自己表的字段

REFERENCES 另一张表(关联字段)

截图:

图片

(2)

(3)删除外建

格式:

alter table 表名 drop FOREIGN key 外键名;

语句:

alter table s drop FOREIGN key wj;

截图;

图片

第二种创建外键的方式:

新建两个表:

create table f(id int(10) PRIMARY key,name varchar(20))ENGINE=INNODB ;

create table z(zid int(10) PRIMARY key,zname varchar(20))ENGINE=INNODB ;

设置外键:

语句:

alter table z add CONSTRAINT wjm1 FOREIGN key (zid)

REFERENCES f(id) ;

图片

六、外键特点

1、父表不存在的数据,子表无法插入

图片

2、父表存在的数据,子表才能插入对应的数据

图片

  1. 存在外键,无法直接删除父表的数据,要先删除子表的数据,才能删除父表

语句:

delete from f where id=1;

delete from z where zid=1;

截图:

图片

面试题:

1、什么是外键?

2、外键作用?

3、如何创建外键?两种创建方法

4、如何删除外键?

5、公司使用外键?

a、保证数据的唯一性

b、公司数据量大,造成数据重复,新旧表维护成本大,使用外键进行分类管理,主表和子表单一化,避免数据的冗余

标签:ENGINE,数据库,外键,FOREIGN,key,table,create
From: https://www.cnblogs.com/hutongxue/p/18385111

相关文章