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

数据库外键

时间:2024-05-17 19:29:50浏览次数:16  
标签:父表 数据库 外键 表名 table 子表 数据

一.什么是外键
让一张表记录的数据不要太过冗余,在数据库中对表的关系进行解耦,尽量让表的数据单一化
二.外键的作用
保持数据的一致性和完整性
三.查看存储引擎
show table status from 数据库名 where name ='表名'

存储格式默认为MyISAM
四.查看外键的方法
show create table 表名

五.创建外键
1.创表时创建
create table 表名(父表) (id int primary key,name varchar(20))
create table 表名(子表)(sid int primary key,c_name varchar(20),constraint 外键名 foreing key (sid)reference 父表名(id)) engine=innodb
2.创建表后在创建(以上表为例)
alter table 表名(子表)add constraint 外键名 foreign key (sid) reference 表名(父表)(id)

六.外键的操作
1.父表不存在数据则子表无法添加数据

2.父表中存在数据则子表可以插入数据

3.子表中存在的数据无法直接删除父表的数据

4.子表中不存在的数据父表才可以删除

七问题
1、什么是外键?

2、外键作用?

3、如何创建外键?

4、如何删除外键

5、公司中为什么使用外键?

(1)保存数据的一致性和完整性

(2)公司数据量大,造成数据重复,新旧表维护成本大,使用外键让公司数据进行分类和管理,让基础数据放在主表,子表单一化,避免数据的冗余

标签:父表,数据库,外键,表名,table,子表,数据
From: https://www.cnblogs.com/fanshsh/p/18198283

相关文章

  • 数据库(MySQL)基础
    时间:2024-05-11星期六mysql基础mysql基础学习内容MySQL数据库安装与配置、SQL基本查询、SQL写入操作、MySQL表操作、SQL高级查询、MySQL基本函数数据库分类主流关系型数据库商用数据库:DB2、Oracle开源免费数据库:MySQL、SQLServer(微软开发的,主要用于windows系统,现在也支持......
  • DataX将Oracle数据库数据同步到达梦数据库
    1.DataX3.0开源版本,rdbms里面默认是达梦7的驱动,因此,如果像链接达梦8需要替换驱动。需要将达梦8的驱动放在D:\datax\lib、D:\datax\plugin\reader\rdbmsreader\lib和D:\datax\plugin\reader\rdbmswriter\lib下D:\datax\plugin\reader\rdbmsreader\plugin.json和D:\datax\plugin\re......
  • 数据库实验一
    在stumanage数据库中,如下图建立表student:列名数据类型允许空主键说明1snoChar(8)否是学号2snameVarchar(20)是否姓名3sexChar(2)是否性别4sdeptVarchar(20)是否所在系如下图建立表:course列名数据类型允许空主键说明1cnoChar(6)否是课......
  • GreatSQL数据库DROP表后无法重建
    一、数据库信息:数据库版本:5.7.21-log某银行测试数据库,APP业务库内有一个含有大量(几百个)分区表的大表test_app。DROP该分区表的大表后导致无法重建该分区表。二、问题描述:客户使用“droptabletest_app;”时,显示表删除成功。当重新执行该表的建表语句时,报错“Table'app.test_......
  • 使用SaveChanges()更新数据库失败
    item.ModelType=TestCase.ModelType;item.TestType=TestCase.TestType;item.TestCaseType=TestCase.TestCaseType;item.TestCaseName=TestCase.TestCaseName;item.TestDescribe=TestCase.......
  • DBA(Database Administrator)数据库运维-mysql
    一、开篇1、版本选择1、企业版2、社区版MySQL社区版则是由分散在世界各地的MySQL开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立BUG汇报机制,收集用户在使用过程中遇到的BUG情况,相比于企业版,社区版的开发及测试环境没有那么......
  • 数据库索引
    一.什么是索引1.索引是一种数据结构(定义)2.索引是在表的字段上创建的3.索引包含了一列值,这个值保存在一个数据结构中二.索引作用1.保证数据记录的唯一行2.实现表与表之间的参照性3.减少排序和分组的时间(如使用orderby,groupby语句进行数据查询时)4.可以使用索引快速访问......
  • rm -rf误删Oracle数据库恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:rm-rf误删Oracle数据库恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有客户把虚拟化环境中装有oracle数据库的linux操作系统,由于操作失误在/下面执行了rm-rf*,导致所有文件......
  • 数据库视图
    1.什么是视图?视图是一个虚拟表,它不在数据库中以存储的形式保存(本身不含数据),在使用视图的时候动态生成。2.视图的优点2.1.提高了查询效率数据库中的数据查询非常复杂,可以简化sql语句2.2安全有些保密字段,可以通过创建视图限制用户对某些字段进行操作。2.3简单不需要关心后买......
  • Python查询PostgreSQL数据库
    哈喽,大家好,我是木头左!Python与PostgreSQL的连接需要了解如何在Python中连接到PostgreSQL数据库。这通常涉及到使用一个库,如psycopg2,它是Python中用于PostgreSQL的最流行的适配器。安装psycopg2非常简单,可以通过pip进行安装:pipinstallpsycopg2安装完成后,可以使用以下代码......