0

頭の中で次のことをクリアする必要があります。

主キーまたは一意の制約なしでテーブルを作成すると、フラット ファイルが作成されます。
主キーを作成すると、結果として主インデックスが作成され、主キーの一意性を維持するのはこのインデックスですよね? したがって、重複する値を追加することはできません。
したがって、任意の列にインデックスを作成すると、列に一意の値が強制されますか? UNIQUEそれとも、インデックスの作成にキーワードを使用することに依存しますか?
最後に、制約を持つ列を宣言するたびにUNIQUE、インデックスが作成されることを意味するので、これらのアクションは交換可能ですか?

4

2 に答える 2

1

主キーを作成すると、結果として主インデックスが作成され、主キーの一意性を維持するのはこのインデックスですよね?

はい。ただし、主キー インデックスは一意のインデックスとまったく同じではありません (「通常の」一意のインデックスよりも特定の優先度があります。

したがって、任意の列にインデックスを作成すると、列に一意の値が強制されますか? それとも、インデックスの作成にキーワード UNIQUE を使用することに依存しますか?

明示的にUNIQUE INDEX.

最後に、UNIQUE 制約を持つ列を宣言するたびに、インデックスが作成されることを意味するので、これらのアクションは交換可能ですか?

を介して一意の制約が作成されUNIQUE INDEXます。それらは同一のものです。

于 2013-03-12T18:39:59.600 に答える
1
  1. 任意の列にインデックスを作成しても、列が一意の値を持つ必要はありません。列に重複する値が存在する可能性がありますが、それらにはインデックスが付けられます。
  2. 列の一意の値は、列にキーワード UNIQUE を使用して適用されます。
  3. UNIQUE 列と主キー列の違いは次のとおりです。UNIQUE キー列は、テーブル行の 1 つだけに NULL 値を保持できます。主キー列は null 値を保持しません。
  4. UNIQUE 列が作成されると、暗黙的に索引が作成されます。ただし、列にインデックスが作成された場合、その列のすべての行の値が UNIQUE になるわけではありません。したがって、それらは交換可能ではありません。
于 2013-03-12T18:41:14.660 に答える