精华内容
下载资源
问答
  • 数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。 update 是主键表中被参考字段的值更新,delete则是指在主键表中删除一条记录: on update 和 on ...
    数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。
    update 是主键表中被参考字段的值更新,delete则是指在主键表中删除一条记录:
    
    on update 和 on delete  后面可以跟的词语有四个
    no action  , set null ,  set default  ,cascade
    no action 表示 不做任何操作,
    set null    表示在外键表中将相应字段设置为null
    set default 表示设置为默认值
    cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除,主要运用在多对多的表关系中
    展开全文
  • 本文介绍了在MySQL数据库定义外键的方法。
  • oracle数据库外键定义与使用

    千次阅读 2020-05-08 17:21:42
    oracle数据库中的六大约束中,外键约束的写法最多,也最不好理解,所以作者在下面的内容中整理了oracle中外键约束的使用方法 一.外键约束存在的意义 在一个软件项目中,会产生大量的用户数据,平台数据,这些数据...

    oracle数据库中的六大约束中,外键约束的写法最多,也最不好理解,所以作者在下面的内容中整理了oracle中外键约束的使用方法

    一.外键约束存在的意义

    在一个软件项目中,会产生大量的用户数据,平台数据,这些数据都会被保存在不同的表中,例如一个电商网站,有用户表user

    订单表order,订单表中会保存订单号,订单信息,以及对应的用户id,订单表中的user_id必须要来自user表,也就是说在生成订单时使用的user_id必须是在user表中存在的,随意这两个表就通过user_id字段产生了关联关系,order表中的user_id需要引用user表中的user_id ,并且user_id一般作为user表的主键,现在成为了order表中的外键,就是我们常说的外键约束

    二.外键约束的类型

    1.普通外键约束:如果子表引用父表,则无法删除父表记录

    2.级联外键约束:可以删除存在引用的父表记录,同时删除子表中所有引用父表的数据

    3.置空外键约束:可以删除存在引用的父表记录,同时将子表中索引引用父表数据的列设置为null(该字段允许空值的前提)

    三.外键约束的使用方法

    1.创建表时定义外键

    在创建表时定义的外键,可以直接使用references关键字,例如

    create table user_info(

    user_id primary key number,

    user_name varchar(2)

    )

    create table order_info(

    order_id number primary key,

    user_id number references user_info(user_id)   --- 创建表时直接引用user_info表中的user_id作为外键

    )

    注意事项:1.user_id列作为外键的前提,user_id必须为某个表的主键

                      2.必须先创建user_info表,再创建order_info表

                      3.向order_info表中插入数据时,所使用的user_id必须存在于user_info表中

    2.向表中添加外键约束(创建表时没有设计外键,可以修改表的结构,添加外键约束)

          1.alter table order_info add constraint fk_user_id foreign key(user_id) references user_info(user_id);(黄色字体为外键约束的名字,需要删除外键约束时,可以直接删除fk_user_id,名字没有具体的要求)

          2.alter table order_info add constraint fk_user_id foreign key(user_id) references user_info(user_id) on delete cascase;

           可以删除存在引用的父表记录,同时删除子表中所有引用父表的数据

          3.alter table order_info add constraint fk_user_id foreign key(user_id) references user_info(user_id) on delete set null;

           可以删除存在引用的父表记录,同时将子表中索引引用父表数据的列设置为null(该字段允许空值的前提)

    3.删除外键约束

    alter table order_info drop fk_user_id;  (fk_user_id)为创建外键时定义的外键名

     

    展开全文
  • 什么是数据库外键?

    2021-04-10 21:17:42
    外键就是一个表中的一个字段引用了另一个表中的主键,引用的表叫做子表,被引用的表叫做主表,外键是一种约束,描述的是表之间的关系。

    外键

    在这里插入图片描述
    在这里插入图片描述
    Teacher_id就是student的外键
    Teacher是主表,student是子表(从表)

    外键就是一个表中的一个字段引用了另一个表中的主键,引用的表叫做子表,被引用的表叫做主表,外键是一种约束,描述的是表之间的关系。
    讲师:https://zhidao.baidu.com/usercenter?uid=db874069236f25705e79f91c&role=pgc

    主键、外键、索引的区别

    主键、外键和索引的区别?
    定义:
    主键:唯一标识一条记录,不能有重复的,不允许为空

    外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值

    索引:该字段没有重复值,但可以有一个空值

    作用:

    主键:用来保证数据完整性

    外键:用来和其他表建立联系用的

    索引:是提高查询排序的速度

    个数:

    主键:主键只能有一个

    外键:一个表可以有多个外键

    索引:一个表可以有多个惟一索引

    展开全文
  • 数据库中的外键使用详解

    千次阅读 2020-07-14 11:14:21
    数据库中的外键使用详解: 1.外键简介 定义:用于建立表与表之间关联关系的字段称为外键。 简介:外键用于建立表与表之间的关联关系,外键所在的表称为从(子)表。外键所关联的表称为主(父)表。 外键若要创建...

    数据库中的外键使用详解:

    1.外键简介

    定义:用于建立表与表之间关联关系的字段称为外键。

    简介:外键用于建立表与表之间的关联关系,外键所在的表称为从(子)表。外键所关联的表称为主(父)表。

    外键若要创建成功,需要满足如下条件:

    • 外键关联的字段必须是主键;
    • 外键字段与关联字段数据类型一致;
    • 若是在创建表后再添加字段,需要外键字段中的值在主键中都存在,其中null值除外。

     

    外键操作:

    ①创建表时操作

    Create table my_foreign([字段列表],constraint 外键名 foreign key(子表外检键字段) references (主表关联字段) [on delete set null] [on update cascade])charset utf8;

    ②添加外键字段操作

    Alter table my_foreign add constraint 外键名 foreign key(子表外检键字段) references (主表关联字段) [on delete set null] [on update cascade]);

    ③ 删除外键

    Alter table my_foreign drop foreign key 外键列表。

     

    2.表的约束分析

    约束模式:

    • 严格模式(默认模式),不安全操作时,系统操作失败。
    • 级联操作(cascade),主表操作时,子表自动完成同样操作。
    • 设置空操作(set null),主表操作时,字表自动完成设置空操作。

    操作

    主表

    从表

    曾加

    -

    插入的外建值若在主表关联字段中不存在,则插入失败。在外键允许为Null的条件下,插入为null,不会失败。

    修改

    严格模式(district):若关联字段在子表中不存在没有被引用,则修改成功;若存在引用,则修改失败。

    级联操作(cascade):若关联字段在字表中被引用,则子表同样完成修改操作。

    设置空操作(set null):若关联字段在字表中被引用,则子表引用的外键被设置Null。

    外键值可以修改为关联字段中存在的值或者null,

    删除

    严格模式(district):若关联字段在子表中不存在没有被引用,则删除成功;若存在引用,则删除失败。

    级联操作(cascade):若关联字段在字表中被引用,则子表同样完成修改操作。

    设置空操作(set null):若关联字段在字表中被引用,则子表引用的外键被设置Null。

     

    -

    查询

    -

    -

     

     

    3.多表关联时

    主要形式:

    • 一个子表关联多个主表: 此模式下,当操作主表时,所有子表的操作均满足条件时,才运行操作。

     

    • 一个主表关联多个子表:次模式下,当操作该子表时,每个关联的主表均满足操作条件后, 才通过该操作。

     

    展开全文
  • 本文介绍在在MySQL数据库定义数据表、设置索引、定义外键、级联等操作。
  • 数据库外键 附数据和代码

    千次阅读 2018-05-14 23:46:06
    数据库外键定义: 数据库外键作用: 数据库外键和主键的区别: 数据库外键demo; DROP schema IF EXISTS `demo`; CREATE schema demo;
  • django数据库外键设置

    2019-12-27 13:55:10
    username = models.ForeignKey(users) #连接users表主键的外键 content = models.TextField(max_length=5000, db_column="content", blank=False) 使用Foreignkey可以创建一个连接到其他表的主键的外键
  • 1,由数据库自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用外键即使在数据库服务器当机或者出现其他问题的时候,也能够最大限度的保证数据的一致性和完整性。 eg:数据库和应用是一...
  • 数据库外键的使用和原则

    万次阅读 多人点赞 2015-11-19 10:47:49
    外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有客户号,客户名称 b表中存有每个客户的订单 有了...
  • N个数据库外键实例

    千次阅读 2016-07-26 12:07:49
    因为外键数据库中相对主键比较难理解,主键就是唯一标识一条记录,很好理解;下面来看N个外键实例; 1 学生所属系 student(s#,sname,d#),即学生这个关系有三个属性:学号,姓名,所在系别。 dep(d#,dname),即...
  • 实体与实体之间的关系 一对一的关系 ... 外键定义在student表?还是class表? – 外键一定定义在多方 即student表 – 多对多关系(定义关系表描述外键) DROP table if create TABLE studeng( stui
  • 数据库外键

    2020-07-04 22:23:07
    作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。
  • Mysql数据库外键约束(foreign key)

    千次阅读 2017-04-09 21:19:01
    备注: 外键约束中,被约束字段的值必须来自父键的参考字段FR:海涛高软(QQ技术交流群:386476712)
  • 数据库外键:一对多/多对多关系

    千次阅读 2019-01-18 17:21:31
    数据库事务四大特性ACID: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 基于原子性对存在重复数据的表进行拆分 一对多: # 用户表 一 class User(db.Model): __tablename__ = ...
  • 首先定义主表的主键 选择SQL Server Management Studio目录树中数据库目录下的数据库关系图 在快捷菜单中选择新建数据库关系图选项 进入添加表界面从可用表中选择要添加到关系图中的表 单击添加按钮然后单击关闭 在...
  • mysql设置外键的好处阻止执行 从表插入新行,其外键值不是主表的主键值便阻止插入; 从表修改外键值,新值不是主表的主键值便阻止修改; 主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的...
  • 数据库外键及其约束理解)

    万次阅读 2019-04-18 10:25:38
    一:首先是外键定义 如果一个字段X在一张表(表一)中是主关键字,而在另外一张表(表二)中不是主关键字,则字段X称为表二的外键;换句话说如果关系模式R1中的某属性集不是自己的主键,而是关系模式R2的主键,...
  • SQL Server 2012 外键约束(定义外键、删除外键

    万次阅读 多人点赞 2019-04-21 20:00:26
    文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在表设计器中删除主键使用SQL方式删除外键 准备知识     外键...
  • 数据库中的外键约束

    2021-09-02 00:53:34
    Mysql 下,外键设置: on delete 规则: 1、CASCADE:级联 所谓的级联删除,就是删除主键表的同时,外键表同时删除。 2、NO ACTION(非活动,默认)、RESTRICT:约束/限制 当取值为No Action或者Restrict时,则当...
  • 数据库中的外键

    2019-09-09 16:38:14
    关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程...
  • 关闭数据库外键约束

    千次阅读 2017-08-06 19:54:27
    当向数据库中插入数据的时候,如果有表之间的关系十分复杂,尤其是是存在各种外键关系,这是需要暂时关闭这种针对外键约束的检查,本文针对以下三种数据库进行了一个总结
  • mysql数据库创建外键

    千次阅读 2019-01-09 17:02:04
    创建外键注意的地方 必须是innodb引擎 注意外键字段类型和另一张表主键字段类型一致否则报“cannot add foreign key constraint“ 创建 create table class(cid int not null auto_increment, caption ...
  • 数据库外键的使用

    2019-09-27 13:12:39
    外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有客户号,客户名称 b表中存有每个客户的订单 有了...
  • 关系型数据库外键约束与关联

    千次阅读 热门讨论 2020-10-07 18:22:57
    外键用于支持关系型数据库的 “参照完整性”,外键具有保持数据完整性和一致性的机制,对业务处理有着很好的校验作用。 举例说明:假设 Table user 的 Column user.id 为主键(Primary key),Table profile 的 ...
  • 数据库主键外键总结

    2019-09-26 20:36:32
    定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键,外键可以有重复的,可以是空值 该字段没有重复值,但可以有一个空值 作用: 用来保证数据完整性 用来...
  • MySql数据库主键外键数据库设计

    千次阅读 2019-05-20 01:38:57
    MySql数据库主键外键数据库设计
  • 为什么需要数据库外键

    千次阅读 2019-01-09 15:59:26
    外键指定一个字段或字段组合作为一个外键(即外来的主键或唯一键),该外键和另一个表的主键或唯一键建立起一个关系,只能定义为表级约束。MySQL数据库使用外键条件:两个表存储引擎必须是InnoDB,MyISAM暂时不支持...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,847
精华内容 44,738
关键字:

数据库的外键定义