NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は、一部の型のゼロ値とは異なります。たとえば、int 型のゼロ値は 0 で、文字列のゼロ値は "" ですが、これらには null ではなく、データがまだあります。 データを保存する際、一時的に利用できないデータは null として記録され、現時点では有効な情報を提供できないことが示されます。 ただし、nullを使用する場合は、いくつかの問題に注意する必要があります。MySQLのドキュメントでは、次のように説明されています。 null 使用時にエラーが発生しやすい点以下では、MySQL 関係者が挙げている null のエラーが発生しやすいポイントについて説明します。 MySQL に慣れていない人は、null 値とゼロ値を簡単に混同する可能性があります。
たとえば、次の2つのSQL文によって生成されるデータは独立している。 mysql> my_table (phone) に VALUES (NULL) を挿入します。 mysql> my_table (phone) に値 ('') を挿入します。 最初のSQL文は、電話番号が現時点では不明であることのみを示しており、2番目の文は電話番号が既知であり、
nullの論理的判断は別途処理する必要がある値が null かどうかを判断するには、特殊な構文
=を使って判断すると、常に偽になります
たとえば、次のように記述すると、where テストの結果は true になりません。 my_table から * を選択 WHERE phone = NULL; null と他のデータを使用して計算を行う場合、MySQL ドキュメントで特定の操作について追加の特別な指示がない限り、結果は常に null になります。
例えば: mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL); +------+--------+---------------------------+ | NULL | 1+NULL | CONCAT('Invisible',NULL) | +------+--------+---------------------------+ | NULL | NULL | NULL | +------+--------+---------------------------+ セット内の 1 行 (0.00 秒) したがって、null について論理的な判断を下したい場合は、 NULL値を探すには、IS NULLテストを使用する必要があります。 NULL値を持つ列のインデックス作成には、隠れた詳細をさらに予測する必要があるInnoDB、MyISAM、および MEMORY ストレージ エンジンのみが、null 値を持つ列のインデックス作成をサポートします。
インデックスの長さは通常のインデックスより 1 長くなります。つまり、消費するメモリがわずかに多くなります。 キーの保存形式により、NULL になる可能性がある列のキーの長さは、NOT NULL 列のキーの長さよりも 1 長くなります。 グループ化、重複排除、およびnull値のソートは特別に扱われます=null は常に false であるという上記の記述とは反対に、null は等しいとみなされます。
null値のソートは特別に扱われます。NULL値は最初または最後にソートされます。
集計操作中はNullは無視されます
たとえば、count(*) は null 値を持つデータをカウントしません。
mysql> SELECT COUNT(*), COUNT(age) FROM person; 上記は、MySQL null のよくある間違いの詳細です。MySQL null の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Windows 10でDockerコンテナのポートにアクセスできない問題に対する完璧な解決策
>>: 18 個のキラー JavaScript ワンライナー
設定例 アップストリームバックエンド{ サーバー backend1.example.com 重み=5...
この記事の例では、検証コードを作成して取得するためのjsキャンバスの具体的なコードを共有しています。...
1. 2 列レイアウトとは何ですか? 2 列レイアウトには、左側が固定幅で右側が適応幅のレイアウトと...
適切な VS Code 拡張機能を Visual Studio に追加すると、開発者としての作業がは...
デフォルトでは、ヘッダーの幅と高さはコンテンツに応じて自動的に調整されます。ヘッダーの幅と高さを手動...
概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...
Linux でバージョン情報を表示する方法。ビット数、バージョン情報、CPU コア情報、CPU 固有...
ajax の parsererror エラー (バックグラウンドからフロントエンドに送信される js...
シナリオ:一般的に使用される親コンポーネントと子コンポーネント間の相互作用方法は次のとおりです。親コ...
目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...
Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...
このチュートリアルでは、LinuxでのMySQL 5.6.33のインストールと設定方法を参考までに紹...
この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...
最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...
環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....