2013-08-18 32 views
0

我正在学习MySQL。我遇到了一些选择题。 如果我怀疑答案是什么或者不确定是否正确,我开始搜索谷歌,stackoverflow和mysql站点。 但是对于一些人来说,我仍然无法确定正确答案是什么。什么声明是不正确的关于唯一索引

问题: 以下所有关于唯一索引的陈述都是真实的,除了哪一个?
A.它必须是唯一的一个表的所有列
B.它不应该明确定义为表
C.它必须创建只有具有PRIMARY KEY或UNIQUE约束的列。
D.它本身并不能创造
E.它不能保证包含在索引的所有值的组合是唯一

建议答案:E.

我的想法:

答:我真的不知道他们的意思。但在这个问题上,它应该是一个正确的说法。有人可以明确这一点吗? B.为表格定义?一个唯一索引位于表格列上。默认情况下,非唯一值是可能的,因此应该明确定义。
C.看起来正确。主键也是唯一的,因此索引应该由MySQL构建(但不是明确的)
D. wut?另一个对我没有任何意义的答案(我是愚蠢的吗?:S)
E.值的组合?否则不能确保这些列值的组合是唯一的。如果它是可能组合在主键中的不同列的组合:那么可以确保它没有用于UNIQUE索引。

晴我能够在有疑问时有一个首选的答案,但在这里我不知道:■

这一次真的是我发疯:S是这只是一个语言障碍或...

如果您对本问题/回答或我的任何言论有任何评论,我很乐意听到!

+0

这个问题从哪里来的?乍一看,在我看来,除了其中一个答案都是错误的(或者,正如你指出的那样,是荒谬的)。 –

回答

0

这些答案不有道理:

A.它必须是唯一索引是在表的列的子集通常定义的表

的所有列是唯一的。一个给定的索引只适用于所有列,如果它是这样定义的。因此,这是错误的。

B.它不应该被明确为表

定义为什么会存在结构如果不应该使用它?独特的索引非常有用。人们可以争辩说,它不是在“表格”上定义的,而是在“表格中的列”上定义的,但是对于这个问题来说这似乎太细微。

C.只能为具有PRIMARY KEY或UNIQUE约束的列创建它。

这接近真实。你可以争辩说,创建一个唯一的索引等同于创建一个唯一的约束。然而,他们是做不同的语法结构来做同样的事情。此外,you不会为具有唯一约束的列创建唯一索引,因为数据库会为您执行此操作。

D.它本身并不能创造

我不知道这是应该的意思。从某种意义上说,它不能被“自己”创建,因为它需要一个表来定义。

E.它不能保证包含在索引的所有值的组合是唯一

这是真的,因为NULL值允许被复制:

A UNIQUE index creates a constraint such that all values in the index 
must be distinct. An error occurs if you try to add a new row with a 
key value that matches an existing row. For all engines, a UNIQUE 
index permits multiple NULL values for columns that can contain NULL.][1] 

我会读,只有(e)是明确无误的。选项(c)和(d)接近,取决于解释。选项(a)和(b)似乎对我的阅读不实。

您可能想要在其他地方寻找这样的问题。

+0

非常感谢您的精心解答!这真的很感谢和学习(也用清晰的英文表达);)。你有一点我应该去别的地方寻找问题,因为这不是我第一个很困惑的问题。 – th3penguinwhisperer

相关问题