Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle-外键中的空值?_Oracle_Null_Ansi - Fatal编程技术网

Oracle-外键中的空值?

Oracle-外键中的空值?,oracle,null,ansi,Oracle,Null,Ansi,我试图回答以下问题 “解释组成外键的列中出现空值时出现的问题。讨论ANSI如何尝试使用使用连接外键时可以采用的三个“匹配规则”来解决此问题。” 有人能给我指出这些“匹配规则”是什么吗?我最初以为它们指的是外部联接,但我现在不确定了 如有任何建议,将不胜感激。 谢谢。如果我没记错的话,这些规则是关于复合外键的。例如,考虑定义如下的地址表: deliveryaddressid - order - orderline - street - ... 其中(order,orderline)是orderl

我试图回答以下问题

“解释组成外键的列中出现空值时出现的问题。讨论ANSI如何尝试使用使用连接外键时可以采用的三个“匹配规则”来解决此问题。”

有人能给我指出这些“匹配规则”是什么吗?我最初以为它们指的是外部联接,但我现在不确定了

如有任何建议,将不胜感激。
谢谢。

如果我没记错的话,这些规则是关于复合外键的。例如,考虑定义如下的地址表:

deliveryaddressid - order - orderline - street - ...
其中(order,orderline)是orderline表的外键。当外键的一部分为NULL时,匹配规则决定联接的行为。例如,一行,如:

32 - null - 1123 - 'Main Street 1' - ...
这是一个(PDF下载,6页)相关部分似乎是:

ANSI SQL 92允许和支持以下数据库 因为Oracle支持替代匹配 复合外键的规则, 包括:

完全匹配–部分为空 不允许使用钥匙。要么全部 外键的组件必须是 null,或值的组合 包含在外键中的 显示为主键或唯一键 表中单个行的值 参考表。[默认值]
匹配部分 –部分零合成 允许使用外键。要么全部 外键的组件必须是 null,或非null的组合 外键中包含的值 必须出现在相应的 主键或唯一键的一部分 表中单个行的值 参考表。
匹配无—— 部分空复合外键 是允许的。如果 复合外键为null,则 密钥的非空部分不存在 不必匹配任何相应的 父密钥的一部分