什么是一个表的外键 他和主键有什么区别吗
1个回答
展开全部
什么是一个表的外键他和主键有什么区别吗/?主键:唯一标识表中的所有行的一个列或一组列。主键不允许空值。不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行。表中可以有不止一个键唯一标识行,每个键都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。尽管表不要求具有主键,但定义主键是很好的做法。在规范化的表中,每行中的所有数据值都完全依赖于主键。例如,在以EmployeeID作为主键的规范化的employee表中,所有列都应包含与某个特定职员相关的数据。该表不具有DepartmentName列,因为部门的名称依赖于部门ID,而不是职员ID。外键:外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。CreatedatabasecatgousecatgoCREATETABLEs(s#intnotnullprimarykey,s_namevarchar(8)notnull)goCREATETABLEc(c#intnotnullprimarykey,c_namevarchar(8)notnull)goCREATETABLEcs(c#intnotnull,s#intnotnull,cjtinyintnotnulldefault(0),primarykey(c#,s#),foreignkey(s#)referencess(s#),foreignkey(c#)referencesc(c#))goinsertsvalues(1,’saa’)insertcvalues(1,’caa’)--这句是对的insertcsvalues(1,1,86)--这句是错的,sql会报错,应为s表的s#列里没有2insertcsvlaues(2,1,45)定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。外键。当创建或更改表时可通过定义FOREIGNKEY约束来创建外键。例如,数据库pubs中的titles表与publishers表有链接,因为在书名和出版商之间存在逻辑联系。titles表中的pub_id列与publishers表中的主键列相对应。titles表中的pub_id列是到publishers表的外键。FOREIGNKEY约束并不仅仅只可以与另一表的PRIMARYKEY约束相链接,它还可以定义为引用另一表的UNIQUE约束。主键是本表的唯一标识,而外键是与另一个表相关联
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询