SQL server 问题,什么是外键,什么是主键?一个表的外键可以是另一个表的主键吗?

如题所述

1.主键:唯一标识表中的所有行的一个列或一组列。主键不允许空值。不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行。表中可以有不止一个键唯一标识行,每个键都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。尽管表不要求具有主键,但定义主键是很好的做法。 在规范化的表中,每行中的所有数据值都完全依赖于主键。例如,在以 EmployeeID 作为主键的规范化的 employee 表中,所有列都应包含与某个特定职员相关的数据。该表不具有 DepartmentName 列,因为部门的名称依赖于部门 ID,而不是职员 ID。 外键:外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。 外键: 当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。 主键是本表的唯一标识,而外键是与另一个表相关联

2.一个表的外键 可以 是另一张表的主键, 但不可以说 外键必须是另一张表的主键。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-20
主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。主键可以包含一或多个栏位。当主键包含多个栏位时,称为组合键 (Composite Key)。

主键可以在建置新表格时设定 (运用 CREATE TABLE 语句),或是以改变现有的表格架构方式设定 (运用 ALTER TABLE)。
外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。外键总是关联唯一的键字段。
主键和外键主要是为了维护关系数据库的完整性,总结一下:
主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外
一个表的外键可以是另一张表的主键本回答被提问者采纳
第2个回答  2013-11-20
主键就是唯一能标识表中数据行的列,一个表中只能有一个
外键简单说就是另一个表的主键/候选键,是两表之间存在关联的键,外键的键值必须是另一个表的主键/候选键的键值
一个表的外键可以是另一个表的主键追问

一个表只能有一个外键吗

追答

一个表可以有多个外键啊,就是太多的话不好维护
插入或修改的时候要关联查出相应的主键值

追问

明白了

第3个回答  2013-11-20
布吉岛
相似回答