MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

1. テストデータ

テーブルtest_nullを作成(
    id int、
    名前varchar(20),
    中国語 int、
    数学int、
    英語 中級
) 文字セット=utf8;

test_nullに挿入 
価値観
(1,null,80,70,68),
(2,'张三',60,null,null),
(3,'李思',null,90,80),
(4、「王武」、90、60、75)、
(5、null、null、50、95);

結果は次のとおりです。

ここに画像の説明を挿入

2. ヌル値による不便

1) フィルタリングが異なり、is null または is not null のみを使用できます。

# null値は==または!=を使用して比較できません。# 次の両方とも間違っています。select *
test_nullから
name == null の場合;

*を選択
test_nullから
name != null; の場合

# null 値は通常、is null または is not null を使用して比較されます # 次の 2 つの使用法が正しい選択です *
test_nullから
name が null の場合;

*を選択
test_nullから
name が null ではない場合。

2) null 値が存在すると、+ - * / 演算が失敗します。

選択 	
	*,(中国語+数学+英語)をtest_nullの合計スコアとして取得します。

結果は次のとおりです。

ここに画像の説明を挿入

3) NULL値は集計関数に影響を与えず、集計関数はNULL値を直接無視します。

選択 
    中国語の合計得点、
    sum(math) 数学の合計点、
    sum(english) test_nullからの外国語の合計スコア

結果は次のとおりです。

ここに画像の説明を挿入

3. スペース、空の値、null をどのように判断すればよいですか?

1) スペース、空の値、nullの違い

これら 3 つの違いをわかりやすい比喩を使って説明してください。まず、スペースは理解しやすいです。空の文字列は、一定量のスペースを占有します。理解しにくいのは、実は空の値と null です。空の値は、何も入っていない真空状態のカップに相当し、null はカップの中に空気が入っていることを意味します。

MySQL では、 nullは不明であり、スペースを占有します。 NULL はインデックス、インデックス統計、および値をより複雑にし、オプティマイザの決定に影響を与えます。空の値('')スペースを占有しません。空の値の''の間にはスペースがないことに注意してください。 count()を使用して列内のレコード数をカウントする場合、 null値がある場合はシステムによって自動的に無視されますが、空の値はカウントされます。 null が使用されているかどうかを判断するには、 is nullis not null 。ただし、空文字が使用されているかどうかを判断するには= ,!=, <>を使用します。 timestampデータ型の場合、 null值を挿入すると、表示される値は現在のシステム時刻になります。 null値を挿入すると、 0000-00-00 00:00:00が表示されます。すでに作成されているテーブルの場合、共通列のnullnot nullに変更してもパフォーマンスはわずかにしか向上しないため、チューニング時に注意する必要はありません。

2) null 値が表示された場合はどうすればいいですか?

上記の分析により、テーブルに null 値がある場合、加算、減算、乗算、除算の演算が失敗することがすでにわかっています。では、これらの null 値をどのように処理すればよいのでしょうか?

最初の方法: is not null を直接使用してこれらの null 値を除外しますが、これにより欠損値のない他のフィールドも除外され、データが無駄になります。

2 番目の方法: これも私たちが推奨する方法です。関数を使用して欠損値を埋めます。

ifnull() および coalesce() 関数の使用:

選択 
    	id、
    	coalesce(name,'Anonymous') 名前、
    	coalesce(中国語,0) 中国語,
    	ifnull(数学,0) 数学、
    	ifnull(英語,0) 英語
test_null から;

結果は次のとおりです。

ここに画像の説明を挿入

以上がMySQLシリーズのNUll値に関する体験まとめと分析の詳しい内容です。MySQLのNUll値についてさらに詳しく知りたい方は、123WORDPRESS.COMの他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数
  • この記事ではMySQLのNULLについて説明します。
  • mysql IS NULL インデックスケースの説明を使用する
  • MySql の null 関数の使用の共有
  • MySQLでディスクにNULL値を保存する

<<:  SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

>>:  HTML 文法百科事典_HTML 言語文法百科事典 (必読)

推薦する

CocosCreatorでシューティングゲームを作る詳しい解説

目次シーン設定ゲームリソース砲塔の回転動的に生成された弾丸衝突計算効果を高めるターゲットの動き弾薬庫...

Linux におけるゼロコピー技術の使用に関する簡単な分析

この記事では、Linux におけるいくつかの主要なゼロコピー テクノロジと、ゼロコピー テクノロジを...

div の高さをブラウザの高さに合わせて調整する方法

この古くからある疑問は、数え切れないほどのフロントエンド開発者やバックエンドプログラマーを悩ませてき...

MySQLデータベースの圧縮バージョンのインストールと設定に関する詳細なチュートリアル

目次1. MySQLをダウンロードする2. 圧縮パッケージを解凍する3. MySQLを初期化する4....

ウェブデザインレイアウトの理解

<br />矛盾が生じます。私たちのような小さな工房では、デザインとレイアウトは基本的に...

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

MySQLのイベントスケジューラEVENTを理解する

MySQL のイベント スケジューラ EVENT は、Unix crontab や Windows ...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

HTML ウェブページの基本コンポーネントの概要

<br />Web ページ上の情報は主にテキストベースです。 Web ページでは、フォン...

Docker Swarmを使用してWordPressを構築する方法

原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

ページリファクタリングスキル - コンテンツ

雑談はここまでにして、インターネット上で見つかる高性能な Yahoo ウェブサイトを構築するための数...

MySQLの整数データ型tinyintの詳細な説明

目次1.1Tinyint型の説明1.2 練習環境の説明1.3 未署名属性の追加1.3.1 SQLモー...

タグのターゲットリンクを iframe に向ける方法

コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...