2

NULLsql データベース列では、を使用して指定しない限り、空のフィールドが に設定されますNOT NULL。一方を他方の代わりに使用する利点は何ですか? ありがとう!

4

5 に答える 5

11

列で不明なデータを表す必要がある場合は、null 可能にします。列に常にデータがある場合は、null 不可にすることをお勧めします。

  1. null の扱いは煩わしく、直感に反する場合があります
  2. それは少しスペースを節約します
  3. 一部のデータベース システムでは、NULL 値にインデックスが作成されません。
于 2012-06-07T14:18:13.137 に答える
3

フィールドが NOT NULL に設定されている場合、空にすることはできません。つまり、レコードを挿入するときにそのフィールドの値を指定する必要があります。

于 2012-06-07T14:17:15.427 に答える
1

ポイントを明確にするためにÖ空の文字列は、SQLのANSI標準に準拠するデータベースではNULLに設定されていません。NULL は空の文字列と同じではありません。明示的に NULL 値が指定された列、または値が指定されていない列には、NULL が割り当てられます。

NULL を使用しないことには、いくつかの利点があります。NULL 値を区別するために使用されるビットのスペースを節約します。また、「フィールド <> 値」などのステートメントの意味をより明確にします。また、一部のデータベースでは、インデックスを使用するための "coalesce(field, '') <> value" などのステートメントの最適化に問題があります。

特に不完全なレコードを挿入する場合は、NULL が必要になることがあります。また、既定では列で NULL が許可されるため、遅延により、すべてのデータベースのほぼすべての列が NULL 値を受け入れることが保証されます。

于 2012-06-07T14:19:49.457 に答える
0

NOT NULLフィールドに特定の値を指定する義務があります。

NULLフィールドに空の値を保持する必要がある場合に使用します。

フィールドに空の値を禁止する場合に使用NOT NULLします。-values を使用すると、ほとんどの DB の動作が遅くなるという追加の目標NULL。したがって、疑いがある場合は を使用してNOT NULLください。

于 2012-06-07T14:20:25.230 に答える
0

NOT NULL は、すべての行の列に値があることを保証する制約です。null は他の null と等しくないため、結合などの操作を行うときはテーブルの null 値に注意する必要があるため、これは正しく適用された場合の良い方法です。

http://en.wikipedia.org/wiki/Null_(SQL )

于 2012-06-07T14:20:43.917 に答える