2017-03-11 16 views
0

プライマリキー でテーブルを作成すると、null値と重複値を挿入できません。 しかし、私は空白を挿入することができます。nullと空白の違いは?

例: insert into table_name values( '');

次に、ヌルとホワイトスペースの違い 主キーの仕組みは?

+0

あなたの質問は、標準SQL(Oracleは** **準拠していない**)ではやや意味があります。標準SQLでは、空の文字列(0文字の文字列)は依然として値ですが、NULLと同じではありません。それでも、それを「プレースホルダ」として使うことはできますが、プライマリキーでは使用できません。列がNOT NULL(ただしPRIMARY KEYではなく)に制約されている場合は、OracleまたはOracleの単一の領域がNULLの代わりに使用されることがよくあります。もちろん、NULLを代用するために単一のスペースを使用する場合、制約を回避するだけです。 – mathguy

+1

NOT NULL制約は正当な目的を果たします。その場合、単一のスペースを挿入して回避する必要がある人を見つけて解雇するか、NOT NULL制約は有効な目的を果たさないようにします。落とす。いずれにせよ、この種のアプローチは意味をなさない。 – mathguy

答えて

3

ホワイトスペースにしたい場合は、文字列であり、あなたは白のスペースの数が同じ主キーを持つ2つの行を挿入することができません。
NULL値を持つフィールドは、値のないフィールドです。 NULL値がゼロ値または空白を含むフィールドと異なることを理解することは非常に重要です。空白は文字列であるため値と見なされます(文字列の値がユーザーに与える意味をSQLでは分かりません)。 se)ですが、NULLは欠損値を意味し、したがって関連する値はありません。
空白を挿入する必要がある場合は、データベーススキーマ設計を再考してください。 詳細についてprimary keys

-1

主キー:それはNULL値が許可されていないと繰り返し値もその列に許可されていない意味制約です。

空白は文字と見なされます。したがって、空白は他のa、bなどのようにcharですので、入力することができます。 NULLは実際には何もありません。

の表では、

+0

http://ascii.cl/ – thatjeffsmith

0

空白は、入力、タブなどのような文字列ですが、Nullは空白です。テキストNulllも空白です。

関連する問題