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

数据库-外键

时间:2024-08-28 16:53:24浏览次数:9  
标签: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

相关文章

  • 软件设计师全套备考系列文章13 -- 数据库:概念、三级模式两级映像、设计过程、数据模型
    软考--软件设计师(13)--数据库:概念、三级模式两级映像、设计过程、数据模型文章目录软考--软件设计师(13)--数据库:概念、三级模式两级映像、设计过程、数据模型前言一、章节考点二、基本概念三、三级模式、两级映像四、设计过程五、数据模型前言考试时间:每年5月、......
  • 【MySQL数据库管理问答题】第9章 优化查询性能
    目录1.请说明EXPLAIN语句的作用。2.为什么使用索引会比全表扫描可以提供更好的查询性能?3.MySQL数据库是如何自动维护索引统计信息的。4.mysqlcheck客户机程序都有哪些功能?5.在性能分析期间使用InvisibleIndexes有什么好处?6.什么是直方图(histograms),它在使用......
  • 【MySQL数据库管理问答题】第10章 选择备份策略
    目录1.请详细说明热备、温备和冷备的特点和不同。2.在MySQL中支持的备份类型有哪几种,分别予以说明。3.执行逻辑备份要具备哪些条件,其优缺点在哪。4.物理备份一般是用来满足什么样的数据库维护需求?5.基于快照的备份能否用来进行数据库损坏时的恢复,请说明理由。6.......
  • 【MySQL数据库管理问答题】第8章 维护稳定的系统
    目录1.请说明一个稳定的系统的具体含义。2.在确定数据库失败原因时,都要考虑哪些方面的因素?3.如何查看InnoDB表所占用的实际存储空间大小?4.谈谈对数据库进行纵向扩展和横向扩展的适用场合。5.说出在判断一个数据库性能问题时的一般性思路或步骤。6.请对InnoDB......
  • openGauss-Anomaly_detection_数据库指标采集_预测与异常监控
    Anomaly-detection:数据库指标采集、预测与异常监控可获得性本特性自openGauss1.1.0版本开始引入。特性简介anomaly_detection是openGauss集成的、可以用于数据库指标采集、预测以及异常监控与诊断的AI工具,是dbmind套间中的一个组件。支持采集的信息包括IO_Read、IO_Write、CPU......
  • 【Statement】Mybatis操作数据库核心
    StatementstatementStatement的类型使用场景在MyBatis中的配置核心标签1.`<select>`标签2.`<insert>`标签3.`<update>`标签4.`<delete>`标签总结statement在MyBatis中,Statement是用于执行SQL语句的核心组件之一。它对应JDBC中的java.sql.Statem......
  • 数据库-索引
    一、索引定义:索引是一种数据结构,用来约束一列值二、索引优点1、保证数据的唯一性2、实现表与表之间的参照性3、减少排序和分组的时间4、提高查询具体数据的速度三、索引缺点:1、索引占物理内存2、进行增删改查也到索引进行动态维护四、索引的分类1、普通索引(效果无不变......
  • openGauss-AI4DB-数据库自治运维
    openGauss-AI4DB:数据库自治运维数据库指标采集、预测与异常监控慢SQL根因分析索引推荐参数调优与诊断慢SQL发现详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • Java后端微服务架构下的数据库分库分表:Sharding-Sphere
    Java后端微服务架构下的数据库分库分表:Sharding-Sphere大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着微服务架构的广泛应用,数据库层面的扩展性问题逐渐凸显。Sharding-Sphere作为一个分布式数据库中间件,提供了数据库分库分表的能力,帮助开发者解......
  • 达梦数据库在Delphi10.3上的安装与连接
          ......