-
2018-07-17 17:39:29
例如数据库有两个表,一张员工基本信息表,一张员工工资表。外键的存在,是确保工资表的员与员工基本信息表中的员工相对应。如果没有外键约束,那么当你给员工工资表添加员工工资的时候可以不受到员工基本上信息表的约束,也就是说你可以添加任何人的工资信息(并不是来自本公司)。
更多相关内容 -
MySQL创建数据表并建立主外键关系详解
2020-12-16 08:11:45需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。 一、SQL... -
[数据库]MySQL创建数据表并建立主外键关系
2021-02-02 11:08:16[数据库]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
-
在SQL Server中建立主键外键的关系
2021-03-14 16:24:33其中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存分数信息 主键设置 不在阐述 在我上面博客里有 ...主外键约束
主外键约束 的目的 我感觉最有用的还是 级联删除
主键删除了 子键所有数据都被删除
设置
俩个表 一个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创建数据表并建立主外键关系
2021-02-08 08:36:44为mysql数据表建立主外键需要注意以下几点:需要建立主外键关系的两个表的存储引擎必须是InnoDB。外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。外键列和参照列必须创建索引,如果外键列不存在... -
SQLserver创建与主外键的看法
2017-11-21 19:57:00以上是关于视图和主外键使用的一些相关操作,通过重构巩固一旦学到的知识。正确SQL server又多了一个小知识,了解。 版权声明:本文博客原创文章,博客,未经同意,不得转载。 本文转自mfrbuaa... -
数据库SQL的主键和外键之间关系
2021-03-25 16:50:16外键作用是用来和其他表建立联系用的 索引:该字段没有重复值,但可以有一个空值;一个表可以有多个唯一索引;索引作用是提高查询排序的速度 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表... -
SQL 主键与外键的关系
2018-04-25 10:15:27转载:点击打开链接SQL的主键和外键的作用:外键取值规则:空值或参照的主键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键... -
sql 语句,主键外键详解
2016-06-22 15:55:42外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除... -
SQL Server创建外键时弹出错误的解决办法以及外键的取值情况说明
2022-03-23 22:35:33在外键关系中把“在创建或重新启用时检查现有数据”选为“否”即可。 (怎么进入“外键关系”窗口:右键单击表,选择设计,在空白处右击,选择关系) 二、外键的取值情况: 设置好外键(Cno为主键,Cpon为外键... -
mysql主外键约束怎么写?
2021-01-19 19:22:36mysql外键约束的写法:“CREATE TABLE 表名(FOREIGN KEY 字段名 REFERENCES 主表名 主键列)”。(推荐教程:mysql视频教程)mysql主键约束主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束... -
sqlserver设置外键遇到的问题(设置时对主键表和外键表的理解有误导致)
2021-01-04 03:51:24要设置的外键,主表里必须拥有和从表的一样的字段列,字段类型等必须相等,否则会提示xxxx不匹配错误。 必须搞清楚主键表和外键表的意思!!! 右键双击要设置外键的字段,出现下列框,开始设置外键。 ... -
【mysql】mysql中主外键关系(详细精讲)
2016-11-25 00:16:02【mysql】mysql中主外键关系(详细精讲) 作者:yjqyyjw 一、外键: 1、什么是外键 2、外键语法 3、外键的条件 4、添加外键 5、删除外键 1、什么是外键: 主键:是唯一标识一条记录,不能有重复... -
表查询—主外键关联查询
2019-07-21 17:13:35通过主外键实现表关联查询~ -
mysql|中主外键关系(转)
2021-01-18 23:17:06主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如... -
SQL SERVER 语句创建数据库和表以及设置主外键关系
2018-11-08 15:19:08简单的创建数据库的 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值 严重受限于父表 父表:被引用的字段要具有唯一性(绝大多数都是用的父表的主键) 理论上是可以... -
【心得】不建立主外键关系也可以关联两个表;
2017-03-01 15:49:11用主外键关系可以关联两个或多个表,进行查询,但是,我也可以使用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我是小玉,一个平平无奇的小天才! 主键和外键 概念: ...外键与主键相对,作用就是通过主外键的之间关系使对张表中的数据更好的关联。 区别: 主键——一个表主键只能有一个 外键——一个表可以有多. -
SQL的主键和外键的作用
2021-01-27 18:33:38QL的主键和外键的作用:外键取值规则:空值或参照的主键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键时选定外键记录一起... -
sql设置外键(设置外键的sql语句)
2021-02-01 02:46:07sql设置外键(设置外键的sql语句)2020-07-24 11:44:03共8个回答sql怎么设置外键创建数据库时就是有主键的创建了主键,但是...第二步、然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按...