正式に開始する前に、次の図に示すように、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
MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
MySQL binlog は MySQL ログの中で非常に重要なログであり、データベースのすべての ...
序文ミニプログラムのアップロードには https が必要なので、サーバーの https は lets...
Windows 2008 Serverのサブドメインを親ドメインに参加させると、「ドメインは既に存...
序文ファイルのコピーによってハードドライブのスペースが大量に浪費され、ファイルを更新するときに混乱が...
MySQL スロー クエリ (正式名称はスロー クエリ ログ) は、MySQL によって提供されるロ...
VIP を設定した後、アクティブ/スタンバイの切り替え中に表示されるエラー メッセージは次のとおりで...
序文Golang は、SQL データベースにアクセスするための database/sql パッケージ...
目次1. 生放送効果2. ライブストリーミングを開始する手順2.1 Tencent Web(高速ライ...
目次フロントエンド上記のアイデアに従って、ページめくり機能を設計して記述します。バックエンド(Jav...
この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...
CSS3変数について変数を宣言するときは、変数名の前に 2 つのハイフン ( -- ) を追加します...
背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...
innobackupex を使用してバックアップする際に MySQL がサーバーに接続できない場合は...