NULL
sql データベース列では、を使用して指定しない限り、空のフィールドが に設定されますNOT NULL
。一方を他方の代わりに使用する利点は何ですか? ありがとう!
5 に答える
列で不明なデータを表す必要がある場合は、null 可能にします。列に常にデータがある場合は、null 不可にすることをお勧めします。
- null の扱いは煩わしく、直感に反する場合があります
- それは少しスペースを節約します
- 一部のデータベース システムでは、NULL 値にインデックスが作成されません。
フィールドが NOT NULL に設定されている場合、空にすることはできません。つまり、レコードを挿入するときにそのフィールドの値を指定する必要があります。
ポイントを明確にするためにÖ空の文字列は、SQLのANSI標準に準拠するデータベースではNULLに設定されていません。NULL は空の文字列と同じではありません。明示的に NULL 値が指定された列、または値が指定されていない列には、NULL が割り当てられます。
NULL を使用しないことには、いくつかの利点があります。NULL 値を区別するために使用されるビットのスペースを節約します。また、「フィールド <> 値」などのステートメントの意味をより明確にします。また、一部のデータベースでは、インデックスを使用するための "coalesce(field, '') <> value" などのステートメントの最適化に問題があります。
特に不完全なレコードを挿入する場合は、NULL が必要になることがあります。また、既定では列で NULL が許可されるため、遅延により、すべてのデータベースのほぼすべての列が NULL 値を受け入れることが保証されます。
NOT NULL
フィールドに特定の値を指定する義務があります。
NULL
フィールドに空の値を保持する必要がある場合に使用します。
フィールドに空の値を禁止する場合に使用NOT NULL
します。-values を使用すると、ほとんどの DB の動作が遅くなるという追加の目標NULL
。したがって、疑いがある場合は を使用してNOT NULL
ください。
NOT NULL は、すべての行の列に値があることを保証する制約です。null は他の null と等しくないため、結合などの操作を行うときはテーブルの null 値に注意する必要があるため、これは正しく適用された場合の良い方法です。