2010-12-30 8 views

答えて

14

はいあなたは... NULL値の概念は、多くの場合、NULLが空の文字列「」、またはゼロの値と同じであることを考えるSQLへの新規参入のための混乱の共通のソースであることができます。

これは該当しません。概念的には、NULLは「不明な値が見つからない」ことを意味し、他の値とは多少異なる扱いをします。たとえば、NULLをテストするには、ほとんどのDBMSで=、<、または<などの算術比較演算子を使用できません。

14

DBMSによって異なります。

オラクル: '' とnullは、同一

SQL-Serverのはいている: '' とnullは、異なる値ではありません。

+0

+1。私はMySQLからOracleに切り替えたとき、私の頭を強く叩いた。 'where code = '''は "空文字列"を返さなくなりました... – Ronnis

1

Daniel氏によると、はい、長さゼロの文字列をNOT NULLフィールドに挿入することができます(Oracleを除く)。しかし、あなたにも長さゼロの文字列を除外したい場合は、制約を追加することができます

ALTER TABLE xyz ADD CONSTRAINT CHECK (b LIKE '_%'); 

最近のほとんどのデータベースは、正規表現の演算子を持っているか、あなたにも制約のために使用することができます機能が、正確な構文はデータベースによって異なります。

関連する問題