数据库中外键必须依赖于主键吗,它依赖的可以是唯一的unique字段吗

作者&投稿:东野眉 (若有异议请与网页底部的电邮联系)
SQL的外键必须引用另一个表的主键吗?可以是其他列吗?~

一般来说引用的都是主键,主要是由主键的性质决定的,主键是一些唯一非空的元素的集合,那么才有引用的意义。
之所以限制主键,主要是建立外键的表一般都是基础属性表,这种键值如果重复那么后果比较严重,所以一般都用主键进行限制。

主键确定的数据库记录行数唯一,但是主键组成不唯一,可以由多个字段组成

答案:YES
外键除了依赖主键意外,还可以依赖唯一(Unique)约束。你把要做外键的字段在另个表(主表)中设置成唯一约束就可以啦。

外键是必须依赖于主键的。因为只有主键才是表里的唯一标示。

外键必须依赖于主键,

...server 问题,什么是外键,什么是主键?一个表的外键可以是另一个表的...
答:在规范化的表中,每行中的所有数据值都完全依赖于主键。例如,在以 EmployeeID 作为主键的规范化的 employee 表中,所有列都应包含与某个特定职员相关的数据。该表不具有 DepartmentName 列,因为部门的名称依赖于部门 ID,而不是职员 ID。 外键:外键 (FK) 是用于建立和加强两个表数据之间的链接...

想问一下数据库设置外键约束的主要目的
答:ID) REFERENCES STUDENT(ID);主键与外键: 键是表中的列(可以是一列,也可以是几列),主键用于唯一的标识表中的数据项;外键用于连接父表和子表。而所谓的父表和子表是根据3NF 范式的要求,为了消除传递依赖,将原表拆成2个相互关联的表,而这个关联就是外键。

oracle中外键的作用?
答:oracle 中数据库外键知识点 外键是该表是另一个表之间联接的字段 外键必须为另一个表中的主键 外键的用途是确保数据的完整性。参考资料:http://anly.javaeye.com/blog/148828

请问可以既不是主键也不是外键吗?
答:可以。一个表如果有多个字段,则除一个字段要设置为了主键外,其余都可以设置为既不是主键也不是外键,如果一个表就一个字段,那么可以不设置为主键,但查询时会报错。

由两个列组成的主键 外键怎么不能引用
答:数据库不允许这样的做法...外键要引用的对应表 一定要是完全的主键或者 唯一健 你可以这样:CREATE TABLE a(id1 INT UNIQUE ,id2 INT,name INT,PRIMARY KEY (id1,id2));CREATE TABLE b(ident INT,id1 INT REFERENCES a(id1));加个unique约束 ...

主键和外键有什么区别呢
答:\x0d\x0a\x0d\x0a外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。既没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。\x0d\x0a\x0d\x0a主键:表中记录的唯一标识\x0d\x0a\x0d\x0a外键:依赖于别的表的数据\x0d\x0a\x0d\x0a...

简述数据库的三大范式和五大约束
答:范式书上讲解太拗口,自己总结一下:第一范式:数据表中的每一列(每个字段)必须是不可拆分的最小单元,不允许存在隐藏字段,属性保持“原子性”(最大细分的二维表)第二范式:第一范式基础上要有主键,所有列都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情(...

数据库基础外键什么的
答:2.自增长列自增长列是不好找主键时候用 名称是ids 类型是int 这一列是没有意义的。下面自动增长点对号3.外键从表主表主表控制从表主表中的外键列一定是主键。 类型什么的一定要一样,练习时候用了一次类型写错了结果不能建立,以后要注意规则:数据库三大范式第一范式:保证每一列的原子性,也就...

外键在sql语句中是怎样定义的?
答:id int,name char(20),foreign key(id))。将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。建立外键的前提是目标关系的主键和参照关系的外键必须定义在一个或同一组的域上。

SQL数据库主键与外建的约束是怎么保证数据的完整性的? 外键为什么可以重...
答:主键: 主键唯一,以此保证数据完整性 外键:子表数据存在的前提是主表中有相同键值的数据存在,删除时,先删除子表的相同键数据,再删除主表的相同键数据。以此保证数据完整性。主表对子表是1对多关系,因此是外键可以重复。空值不能作为主键。