精华内容
下载资源
问答
  • SQL数据库为什么要建立主外键关系
    千次阅读
    2018-07-17 17:39:29

    例如数据库有两个表,一张员工基本信息表,一张员工工资表。外键的存在,是确保工资表的员与员工基本信息表中的员工相对应。如果没有外键约束,那么当你给员工工资表添加员工工资的时候可以不受到员工基本上信息表的约束,也就是说你可以添加任何人的工资信息(并不是来自本公司)。

    更多相关内容
  • 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。 一、SQL...
  • [数据库]MySQL创建数据表并建立主外键关系0 2018-07-04 01:01:25为mysql数据表建立主外键需要注意以下几点:需要建立主外键关系的两个表的存储引擎必须是InnoDB。外键列和参照列必须具有相似的数据类型,即可以隐式...

    [数据库]MySQL创建数据表并建立主外键关系

    0 2018-07-04 01:01:25

    为mysql数据表建立主外键需要注意以下几点:

    需要建立主外键关系的两个表的存储引擎必须是InnoDB。

    外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。

    外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。

    一、SQL语句创建数据表并设置主外键关系create table demo.ChineseCharInfo( ID int not null auto_increment, Hanzi varchar(10) not null, primary key (ID))engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci; create table demo.ChinesePinyinInfo( ID int not null auto_increment, CharID int null, Pinyin varchar(10) null, Tone tinyint unsigned null, primary key (ID), -- 方式一:不指定外键名称,数据库自动生成 foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade -- 方式二:指定外键名称为(FK_Name) -- constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade )engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci;

    二、当数据表已经存在时,就要使用下面的方法建立主外键关系-- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,并指定外键名为(FK_Name)alter table demo.ChinesePinyinInfo add constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID);-- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,不指定外键名,由数据库自动生成外键名alter table demo.ChinesePinyinInfo add foreign key (CharID) references ChineseCharInfo(ID);

    三、删除主外键约束-- 通过修改列的属性来删除自增长,第一个(ID)为原列名,第二个(ID)为新列名alter table demo.ChinesePinyinInfo change ID ID int not null;-- 删除表(demo.ChinesePinyinInfo)中的主键约束,如果主键列为自增列,则需要先删除该列的自增长alter table demo.ChinesePinyinInfo drop primary key; -- 删除表(demo.ChinesePinyinInfo)中的名称为(FK_Name)的外键alter table demo.ChinesePinyinInfo drop foreign key FK_Name;

    四、主外键关系的约束

    如果子表试图创建一个在主表中不存在的外键值,数据库会拒绝任何insert或update操作。

    如果主表试图update或者delete任何子表中存在或匹配的外键值,最终动作取决于外键约束定义中的on delete和on update选项。

    on delete和on update都有下面四种动作。cascade:主表删除或更新相应的数据行,则子表同时删除或更新与主表相匹配的行,即级联删除、更新。set null:主表删除或更新相应的数据和,则子表同时将与主表相匹配的行的外键列置为null。当外键列被设置为not null时无效。no action:数据库拒绝删除或更新主表。restrict:数据库拒绝删除或更新主表。如果未指定on delete或on update的动作,则on delete或on update的默认动作就为restrict。

    本文网址:http://www.shaoqun.com/a/354768.html

    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

    MYSQL

    0

    展开全文
  • 其中CNum是主键,但是在Course表中出现了TNum,因此,我希望Course表中的TNum作为Teacher表中主键TNum的外键。 操作如下 右键点击“键”->“新建外键”->“添加” 随后出现以下界面: 点击“表和列规范右侧...

    首先我们先看两个表的信息
    表一:Teacher表
    在这里插入图片描述
    显然其中TNum是主键。

    表二:Course表
    在这里插入图片描述

    其中CNum是主键,但是在Course表中出现了TNum,因此,我希望Course表中的TNum作为Teacher表中主键TNum的外键。

    操作如下

    在这里插入图片描述
    右键点击“键”->“新建外键”->“添加” 随后出现以下界面:

    点击
    点击“表和列规范右侧的省略号 出现一下界面:

    在这里插入图片描述

    随后请读者将表格调成以下界面(很简单的)

    在这里插入图片描述
    点击确定 出现以下界面

    在这里插入图片描述
    左上角的FK_Course_Teacher 意思是:Course中有的列是Teacher某一列的ForeignKey(外键)。

    展开全文
  • Sqlserver 主外键约束

    千次阅读 2019-11-01 10:32:52
    主外键约束 主外键约束 的目的 我感觉最有用的还是 级联删除 主键删除了 子键所有数据都被删除 设置 俩个表 一个TJ表 一个TS表 TS 为主表 里面存人物信息 TJ存分数信息 主键设置 不在阐述 在我上面博客里有 ...

     Sqlserver 高级基础 约束整理 上一篇

    主外键约束

    主外键约束 的目的 我感觉最有用的还是 级联删除

    主键删除了  子键所有数据都被删除

    设置

    俩个表 一个TJ表  一个TS表 TS 为主表 里面存人物信息 TJ存分数信息 主键设置 不在阐述 在我上面博客里有

    右击子表的关联ID  点击关系

    还是 新增 改名 点击表与列规范

    选择主键 ID 和外键对应的键  一定要保证 俩个数据类型一致

    关系 选择 级联 这样删除的时候可以一起删除 一会会有效果

     

    设置完后 我们左侧 TJ 就会有 一个外键

     

    现在俩个标的关系已经建立 如果成绩表 我们录入一个不存在ID 就录入不进去

    现在表里只有一个ID为1 的张三 我们录入一个STID为2 在成绩表里

    不要管字段 都是我瞎写的   看值 没进去 把~ 我们改成1 就可以了

     

    现在我们 删除掉主表里的ID为1的值 看一下 子表的数据

    看一下 我并没有写删除TJ的数据 但是也被删除了

     

    在sqlserver 中 还有一个很便利的增加主外键的方式

    这就是 数据库关系图 和做E-R一样

    这里可以很方便的对 主外键进行绑定 删除 调整

     

    当然 怎么在代码里创建 可以右击我们刚才创建好的子健 看来代码

     

    USE [testDB62]
    GO
    
    ALTER TABLE [dbo].[TJ]  WITH CHECK ADD  CONSTRAINT [FK_TJ_TS] FOREIGN KEY([TSID])
    REFERENCES [dbo].[TS] ([ID])
    ON DELETE CASCADE
    GO
    
    ALTER TABLE [dbo].[TJ] CHECK CONSTRAINT [FK_TJ_TS]
    GO
    
    
    

     

    到这里 结束 ~

    展开全文
  • mysql中主外键关系

    2021-01-18 18:23:31
    主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如...
  • 为mysql数据表建立主外键需要注意以下几点:需要建立主外键关系的两个表的存储引擎必须是InnoDB。外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。外键列和参照列必须创建索引,如果外键列不存在...
  • 以上是关于视图和主外键使用的一些相关操作,通过重构巩固一旦学到的知识。正确SQL server又多了一个小知识,了解。 版权声明:本文博客原创文章,博客,未经同意,不得转载。 本文转自mfrbuaa...
  • 外键作用是用来和其他表建立联系用的 索引:该字段没有重复值,但可以有一个空值;一个表可以有多个唯一索引;索引作用是提高查询排序的速度 外键取值规则:空值或参照的键值。 (1)插入非空值时,如果主键表...
  • SQL 主键与外键关系

    千次阅读 2018-04-25 10:15:27
    转载:点击打开链接SQL的主键和外键的作用:外键取值规则:空值或参照的键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键...
  • sql 语句,主键外键详解

    千次阅读 2016-06-22 15:55:42
     外键取值规则:空值或参照的键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除...
  • 外键关系中把“在创建或重新启用时检查现有数据”选为“否”即可。 (怎么进入“外键关系”窗口:右键单击表,选择设计,在空白处右击,选择关系) 二、外键的取值情况: 设置好外键(Cno为主键,Cpon为外键...
  • mysql外键约束的写法:“CREATE TABLE 表名(FOREIGN KEY 字段名 REFERENCES 表名 主键列)”。(推荐教程:mysql视频教程)mysql主键约束主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束...
  • 要设置的外键表里必须拥有和从表的一样的字段列,字段类型等必须相等,否则会提示xxxx不匹配错误。 必须搞清楚主键表和外键表的意思!!! 右键双击要设置外键的字段,出现下列框,开始设置外键。 ...
  • 【mysql】mysql中主外键关系(详细精讲)

    千次阅读 多人点赞 2016-11-25 00:16:02
    【mysql】mysql中主外键关系(详细精讲) 作者:yjqyyjw 一、外键: 1、什么是外键 2、外键语法 3、外键的条件 4、添加外键 5、删除外键 1、什么是外键: 主键:是唯一标识一条记录,不能有重复...
  • 表查询—主外键关联查询

    千次阅读 2019-07-21 17:13:35
    通过主外键实现表关联查询~
  • 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如...
  • 简单的创建数据库的 SQL语句: use master go if exists(select * from sysdatabases where name='Test') begin select '该数据库已存在' drop database Test --如果该数据库已经存在,那么就删除它 end else ...
  • 数据sql设置外键约束

    2022-03-21 17:34:04
    它们的关系:主从表关系(父子表关系) 子表:定义了外键的表 外键的取值要么取父表中字段对应的值,要么取NULL值 严重受限于父表 父表:被引用的字段要具有唯一性(绝大多数都是用的父表的主键) 理论上是可以...
  • 用主外键关系可以关联两个或多个表,进行查询,但是,我也可以使用where tableName1.column1=tableName2.column2;...前者就是建立主外键关系,夫妻关系就是你们的约束。后者就是where条件,后者更灵
  • SQL Server 2012 外键约束(定义外键、删除外键

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

    万次阅读 2014-11-02 19:43:08
    ---添加外键约束(表stuInfo和从表stuMarks建立关系,关联字段为stuNo)   alter table 从表   add constraint 约束名  foreign key(关联字段) references 表(关联字段)  GO ...
  • SQL的主键和外键详解!

    千次阅读 多人点赞 2020-11-07 11:52:04
    我是小玉,一个平平无奇的小天才! 主键和外键 概念: ...外键与主键相对,作用就是通过主外键的之间关系使对张表中的数据更好的关联。 区别: 主键——一个表主键只能有一个 外键——一个表可以有多.
  • QL的主键和外键的作用:外键取值规则:空值或参照的键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键时选定外键记录一起...
  • sql设置外键(设置外键sql语句)

    千次阅读 2021-02-01 02:46:07
    sql设置外键(设置外键的sql语句)2020-07-24 11:44:03共8个回答sql怎么设置外键创建数据库时就是有主键的创建了主键,但是...第二步、然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,173
精华内容 16,069
热门标签
关键字:

sql建立主外键关系