NULLを使用してデータベースの問題を回避する方法を理解する
データベースの世界に新しいユーザーは、フィールドに特有の特別な値、つまりNULL値と混同されることがよくあります。 この値は、任意のタイプのデータを含むフィールドにあり、リレーショナルデータベースのコンテキスト内では非常に特別な意味を持ちます。 おそらく、NULLの議論を、NULLが何でないかについてのいくつかの言葉で始めることが最善です。
- NULLは数字のゼロではありません。
- NULLは空の文字列( "")の値ではありません。
むしろ、NULLは未知のデータを表すために使用される値です。 多くの場合、データベースプログラマは "NULL値"というフレーズを使用しますが、これは間違っています。 注意:NULLはフィールドが空白に見える不明な値です。
実世界ではNULL
簡単な例を見てみましょう:フルーツスタンドの目録を含むテーブル。 私たちの目録にリンゴ10個とオレンジ3個が含まれているとします。 我々はまた梅を在庫していますが、私たちの在庫情報は不完全で、どれくらいの梅が在庫されているか分かりません。 NULL値を使用すると、以下の表に示すインベントリテーブルが作成されます。
フルーツスタンド在庫
InventoryID | 項目 | 量 |
1 | りんご | 10 |
2 | オレンジ | 3 |
3 | プラム | ヌル |
梅の記録に0の量を含めることは明らかに間違いでしょう。これは、梅の記録に梅がないことを意味するためです。 逆に、私たちはいくつかのプラムを持っているかもしれませんが、わかりません。
NULLまたはNOT NULLにするには?
テーブルは、NULL値を許可するか否かを設計することができます。
いくつかのNULLを許可するInventoryテーブルを作成するSQLの例を次に示します。
SQL> CREATE TABLE INVENTORY(インベントリID INT NOT NULL、Item VARCHAR(20)NOT NULL、Quantity INT);インベントリテーブルでは、 インベントリIDおよびアイテム列のNULL値は許可されませんが、 数量列のNULL値は許可されます。
NULL値を許可する間は完全に問題ありませんが、NULL値は常にNULLになります。
テーブルにNULL値が含まれているかどうかを確認するには、IS NULL演算子またはIS NOT NULL演算子を使用します。 IS NULLの例を次に示します。
SQL> SELECT INVENTORYID、ITEM、QUANTITYが整数ではない整数がNULLでない場合ここの例を考えると、これは返されます:
InventoryID | 項目 | 量 |
---|---|---|
3 | プラム |
NULLでの操作
NULL値を使用すると、 SQL操作に応じてNULL結果が生成されることがよくあります 。 たとえば、AがNULLであると仮定します。
算術演算子
- A + B = NULL
- A - B = NULL
- A * B = NULL
- A / B = NULL
比較演算子
- A = B = NULL
- A!= B = NULL
- A> B = NULL
- A!
これらは、あるオペランドがNULLの場合に常に NULL を返す演算子の例です。 もっと複雑なクエリが存在し、すべてがNULL値によって複雑になります。 テイク・ホーム・ポイントは、データベースにNULL値を許可する場合は、その意味とその計画を理解することです。
それは一言で言えばNULLです!