mysqlのnullと(null)の違い

下次还敢
下次还敢オリジナル
2024-05-01 20:03:141070ブラウズ

MySQL では、NULL はヌル値を表し、スペースを占有しません。一方、(NULL) は空の文字列値で、1 バイトのスペースを占有します。それらの違いには、異なる格納方法、異なる比較方法、異なる挿入方法、異なる集計関数の処理方法、および異なるインデックスの使用方法が含まれます。

mysqlのnullと(null)の違い

MySQL における NULL と (NULL) の違い

MySQL では、NULL と (NULL) は両方ともnull または不明な値を表す特別な値。それらの主な違いは次のとおりです。

1. ストレージ メソッド

  • NULL: は、実際の null 値です。データベースはスペースを取りません。
  • (NULL): は文字列値であり、データベース内の 1 バイトの領域を占める空の文字列を表します。

2. 比較

  • NULL: NULL は、それ自体を含め、どの値とも比較できません。 NULL と比較すると、常に NULL が返されます。
  • (NULL): (NULL) は文字列値と比較できますが、比較結果は NULL になります。

3.

  • NULL: を挿入します。NULL 値を明示的に挿入することも、DEFAULT NULL を使用して設定することもできます。 NULL 値を許可する列。
  • (NULL): (NULL) 文字列値のみを明示的に挿入できます。

4. 集計関数

  • NULL: NULL 値は、ほとんどの集計関数 (SUM など) では無視されます。 、AVG、COUNT )無視します。
  • (NULL): (NULL) 文字列は空の文字列として扱われます。

5. インデックス

  • NULL: NULL 値はインデックスに使用できません。
  • (NULL): (NULL) 文字列にはインデックスを付けることができますが、常に NULL と比較されるため、インデックス付けの効率は低くなります。

例:

<code class="sql">SELECT * FROM table_name WHERE column_name IS NULL;</code>

これは、column_name が NULL であるすべての行を返します。

<code class="sql">SELECT * FROM table_name WHERE column_name = (NULL);</code>

NULL はどの値とも比較できないため、行のない結果セットが返されます。

以上がmysqlのnullと(null)の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。