mysql データベースにテーブルを作成するたびに、そこに null チェックボックスのオプションが表示されます。クリックするとnull値も取り、チェックされていない場合もnull値を取ります。その意味は何ですか?
4 に答える
NULL
は「値なし」を表し、1 と 0、true または false、または空の文字列と内容のある文字列を区別できるようにするために使用されます。nil
これは、Ruby、null
JavaScript、またはNULL
PHPと似ています。
列を次のように定義すると、その列の値が指定されてNOT NULL
いない場合は許可されませんINSERT
。がある場合DEFAULT
、これは自動的に適用されます。ORM を使用する場合は、安全で最小限のデフォルトで埋められる場合があります。
orフラグNULL
を保持するために、行ごとに 1 ビットの追加ストレージをほとんど必要としない可能性がある列。NULL
NOT NULL
NULL
MySQL では、他の値よりも大きく、小さく、または等しくないという点で珍しいことに注意してください。これが、論理比較にIS NULL
とが必要な理由です。IS NOT NULL
チェックボックスはおそらくデフォルト値を null に設定します。フィールドが null 値を受け入れるかどうかを指定するボックスがある場合もあります。Null は基本的に空またはなし (VB で) を意味します。
Null は基本的に「値なし」です。null を許可する場合は、コードが値を含まない列を処理できることを確認する必要があります。もう 1 つのアプローチは、各列に「空の」値を定義することです (たとえば、整数の場合は 0)。これは、null 値を処理するよりも簡単な場合があります。
以下のHLGEMで指摘されているように、0がnullに相当するとは言いません。考慮してください:「StockOnHand」列を持つDB。
0 は、手元に在庫がないことがわかっていることを意味します。Null は実際には不明を意味します (在庫はありますが、在庫がない可能性があります)。
アプリケーションによっては、「不明」を「在庫なし」と同じように扱うことを決定する場合があります。この場合、「ヌルなし」を使用して値を 0 にすることができます。
マニュアルによると:
NULL
値は「データなし」を意味します。NULL
任意の大文字で書くことができます。同義語は\N
(大文字と小文字を区別) です。
NOT NULL
の反対を意味するNULL
か、データがないわけではありません。一部の列は になる可能性があるためNULL
、 を使用WHERE col IS NOT NULL
して「空」ではない値を検索します。