MySQL IS NULL と IS NOT NULL チュートリアルと例

SQL では、Null は値であると同時にキーワードでもあります。 まず NULL 値を見てみましょう –

MySQL NULL である、および NULL ではない

値としての Null

簡単に言えば、NULL は存在しないデータのプレースホルダーにすぎません。テーブルで挿入操作を実行すると、一部のフィールド値が使用できなくなる場合があります。

真のリレーショナル データベース管理システムの要件を満たすために、 MySQL は、送信されていない値のプレースホルダーとして NULL を使用します。以下のスクリーンショットは、データベース内で NULL 値がどのように表示されるかを示しています。

値としての Null

議論をさらに進める前に、NULL の基本のいくつかを見てみましょう。

  • NULL はデータ型ではありません – これは、「int」、「date」、またはその他の定義されたデータ型として認識されないことを意味します。
  • 算術演算 関与 NULL 常に NULLを返す たとえば、69 + NULL = NULL です。
  • すべて 集計関数 NULL 値を持たない行にのみ影響します。.

ここで、count 関数が NULL 値をどのように処理するかを示してみましょう。 メンバーテーブルの現在の内容を見てみましょう。

SELECT * FROM `members`;

上記のスクリプトを実行すると、次の結果が得られます。

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

contact_number を更新したすべてのメンバーを数えてみましょう

SELECT COUNT(contact_number)  FROM `members`;

上記のクエリを実行すると、次の結果が得られます。

COUNT(contact_number)
7

注: NULL の値は含まれていません。

そうでないものは何ですか?

NOT論理演算子はブール条件をテストするために使用され、条件が偽の場合にtrueを返します。NOT演算子は、テストされた条件が真の場合にfalseを返します。

状態 NOT Opera結果
×
×

なぜ NOT null を使用するのでしょうか?

クエリ結果セットに対して計算を実行し、値を返す必要がある場合があります。NULL 値を持つ列に対して算術演算を実行すると、NULL 結果が返されます。このような状況を回避するには、NOT NULL 句を使用して、データが操作される結果を制限します。

NOT NULL 値

テーブルに新しい行を挿入するときに常に値を指定する必要がある特定のフィールドを含むテーブルを作成するとします。 テーブルを作成するときに、特定のフィールドに対して NOT NULL 句を使用できます。

以下に示す例では、従業員のデータを含む新しいテーブルを作成します。 従業員番号は常に入力する必要があります

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

次に、従業員名を指定せずに新しいレコードを挿入して、何が起こるかを見てみましょう。

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

上記のスクリプトを実行すると、 MySQL ワークベンチで次のエラーが発生します。

NOT NULL 値

NULL キーワード

NULLは、NULLを含む値に対してブール演算を実行するときにキーワードとして使用することもできます。このような目的では、「IS/NOT」キーワードがNULLワードと組み合わせて使用​​されます。NULLをキーワードとして使用する場合の基本的な構文は次のとおりです。

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

Pr_media

  • "無効である ブール比較を実行するキーワードです。 指定された値が NULL の場合は true を返し、指定された値が NULL でない場合は false を返します。
  • 「ヌルではありません」ブール比較を実行するキーワードです。 指定された値が NULL でない場合は true を返し、指定された値が null の場合は false を返します。

次に、NOT NULL キーワードを使用して、NULL 値を持つすべての列値を削除する実際の例を見てみましょう。

上記の例を続けて、連絡先番号がnullでないメンバーの詳細が必要だとします。次のようなクエリを実行できます。

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

上記のクエリを実行すると、連絡先番号が null ではないレコードのみが表示されます。

連絡先番号がnullのメンバーレコードが欲しいとします。次のクエリを使用できます。

SELECT * FROM `members` WHERE contact_number IS NULL;

上記のクエリを実行すると、連絡先番号がNULLのメンバーの詳細が表示されます。

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

NULL 値の比較

XNUMX値ロジック – NULLを含む条件でブール演算を実行すると、 「不明」、「真」、または「偽」。

たとえば、 「IS NULL」キーワードを使用する 比較演算を行うとき NULL を含む どちらでも戻れます true or false他の比較演算子を使用すると、 「不明」(NULL)。

数字の 5 と XNUMX を比較するとします。

SELECT 5 =5;

クエリ結果は 1 で、TRUE を意味します。

5 =5
1

NULLで同じ操作をしてみましょう

SELECT NULL = NULL;
NULL = NULL
NULL

別の例を見てみましょう

SELECT 5 > 5;
5 > 5
0

クエリ結果は 0 で、FALSE を意味します。

NULL を使用した同じ例を見てみましょう

SELECT NULL > NULL;
NULL > NULL
NULL

IS NULL キーワードを使用しましょう

SELECT 5 IS NULL;
5 IS NULL
0

クエリ結果は 0 (FALSE) です。

SELECT NULL IS NULL;

NULL IS NULL
1

クエリ結果は 1、つまり TRUE です

まとめ

  • NULL は、オプションのテーブル フィールドの値のプレースホルダーです。
  • MySQL NULL 値は他のデータ型とは異なる方法で処理されます。 NULL 値を条件で使用すると、偽のブール値として評価されます。
  • NOT 論理演算はブール値をテストするために使用され、ブール値が false の場合は true と評価され、ブール値が true の場合は false と評価されます。
  • NOT NULL 句は、結果セットから NULL 値を削除するために使用されます。
  • NULL 値に対して算術演算を実行すると、常に NULL 結果が返されます。
  • [、= などの比較演算子は NULL 値の比較には使用できません。