正式に開始する前に、次の図に示すように、MySQL サーバーの構成とバージョン番号情報を確認しましょう。 「軍隊が移動する前に、食料と飼料を準備する必要があります。」関連する構成を読んだ後、テスト テーブルとテスト データを作成しましょう。 -- person テーブルが存在する場合は、まずそれを削除します。DROP TABLE IF EXISTS person; -- ユーザー名フィールドが空になる person テーブルを作成し、通常のインデックスを設定します CREATE TABLE person ( id INT 主キー auto_increment, 名前 VARCHAR(20)、 モバイルVARCHAR(13)、 インデックス(名前) )ENGINE='innodb'; -- person テーブルにテストデータを追加します insert into person(name,mobile) values('Java','13333333330'), ('MySQL','13333333331'), ('Redis','13333333332'), ('カフカ','13333333333'), (「春」、「13333333334」)、 ('MyBatis','13333333335'), ('RabbitMQ','13333333336'), ('Golang','13333333337'), (NULL、'13333333338')、 (NULL、'13333333339'); 人から*を選択します。 構築されたテスト データを次の図に示します。 データが揃ったので、列に 1. カウントデータが失われる列に personからcount(*),count(name)を選択します。 クエリの実行結果は次のとおりです。 上記の結果から、 解決列に 追加知識: count(constant) を使わない
2. 明確なデータ損失
person から count(distinct name,mobile) を選択します。 クエリの実行結果は次のとおりです。 データベースの元データは次のとおりです。 上記の結果から、携帯電話番号列の 10 個のデータはすべて異なるが、クエリ結果は 8 であることがわかります。 3.データ損失を選択列に 名前が「Java」に等しいデータを除くすべてのデータをクエリする必要があります。 期待される結果は、ID が 2 から 10 までのデータです。 ただし、次のクエリを実行すると: select * from person where name<>'Java' order by id; -- または select * from person where name!='Java' order by id; クエリ結果は次のとおりです。 2 つの 解決上記の問題を解決するには、クエリ結果に select * from person where name<>'Java' or isnull(name) order by id; 最終的な実行結果は次のとおりです。 4. Nullポインタ例外が発生する列に まず、テーブルとテストデータを作成しましょう。 -- goods テーブルが存在する場合は、まずそれを削除します。DROP TABLE IF EXISTS goods; -- 商品テーブルを作成する CREATE TABLE goods ( id INT 主キー auto_increment, 数値整数 )ENGINE='innodb'; -- テストデータを商品テーブルに追加します。 insert into goods(num) values(3),(6),(6),(NULL); 商品から*を選択します。 表の元のデータは次のとおりです。 次に、 id>4の商品からsum(num)を選択します。 クエリの実行結果は次のとおりです。
Null ポインタ例外の解決 NullPointerException を回避するには、次の方法を使用します。 id>4の商品からifnull(sum(num), 0)を選択します。 クエリの実行結果は次のとおりです。 5. クエリの難易度が上昇列に いわゆるクエリの難易度が上がるというのは、 誤った使い方1: name<>null の場合、 person から * を選択します。 次の図に示すように、実行結果は空で、データが見つかりません。 誤った使い方2: name!=null の場合、 person から * を選択します。 次の図に示すように、実行結果も空であり、データは照会されません。 正しい使い方1: 名前が null でない person から * を選択します。 実行結果は次のとおりです。 正しい使い方2: !isnull(name) となる person から * を選択します。 実行結果は次のとおりです。 推奨される使用方法 Alibabaの「Java開発マニュアル」では、 拡張知識: NULLはインデックスに影響しません 注意深い友人は、次の図に示すように、私が 次に、 上記の結果から、 要約するこの記事では、列が これで、MySQL が Null になることで発生する 5 つの問題 (すべて致命的) に関するこの記事は終了です。MySQL が Null になることで発生する問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: HTML テーブルタグチュートリアル (23): 行の境界線の色属性 BORDERCOLORDARK
目次説明する:要約する補充するDOM を直接変更して操作する js や jQuery とは異なり、V...
このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...
目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...
日付型の違いと用途MySQL には、日付、時刻、年、日付時刻、タイムスタンプの 5 つの日付タイプが...
テトリスは非常に古典的な小さなゲームで、私もそれを書いてみました。しかし、できるだけ簡潔で論理的なコ...
マウスをドラッグしてページのスクリーンショットを撮ります(指定した領域にスクリーンショットをドラッグ...
目次アプリケーションシナリオ簡単に言えば、カスタム指示基本概念グローバルカスタマイズローカルカスタマ...
1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...
1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...
この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳...
MYSQL のフィールドのデータの一部をバッチで置き換えます。具体的な導入は次のとおりです。 1....
最も一般的な方法は、フィールドに主キーまたは一意のインデックスを設定することです。重複データを挿入す...
ここで、アンカー ポイントを制御するいくつかの状況をまとめてみましょう。 1. 同じページ <...
1. 削除delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」...
FIFO通信(先入れ先出し)関連のないプロセス間の通信を可能にする FIFO 名前付きパイプ。パイプ...