1. 集計クエリ
1. 集計関数 (count、sum、avg...)
一般的な統計合計、タイ値の計算、およびその他の操作は、次を使用して実装できます。集約関数 、一般的な集約関数は次のとおりです:
- where ステートメントと order by ステートメントを最後に追加できることに注意してください。これらの集計関数は、これらのステートメントの結果セットに基づいてクエリを実行します。
- そうしないことをお勧めします。 MySQL の制限は他のデータベースの制限と異なるため、制限を追加します
- 統計列の集計関数を使用する場合は、他の列を書き込まないようにしてください。そうしないと、この問題が発生します。最初の列は無意味に表示されます
注:
1. カウント: count (*)、count (0)、count (1) を使用できます。平たく言えば、テーブル全体から 1 を選択するのと同じです。この count の 0 と 1 がパラメーターとして渡されるだけです。 、最初に 1 を選択し、次に count- Select の後の集計関数は、Group by によるグループ化が完了した後に実行されます。
- Group by ステートメントの本質はグループ化であり、集計クエリでよく使用されます。
#Select で指定されたフィールドgroup by の後にある必要があります。 Yes と no は集計関数でのみ使用できます。そうでない場合は、問題が発生します。
1. Group by ステートメントの本質は次のとおりです。グループ化、多くの場合、集計クエリと一緒に使用します
2。集計関数がある限り、グループ化できます
3。グループ化操作では、クエリによりフィールドと集計関数をグループ化できます。 、および他の非グループ化フィールドを保証する必要があります。 グループ化後に複数の行が存在することはありません (学生 ID のグループ化など、学生 ID のグループ化後は行が 1 つしかないため、クエリ フィールドに学生名を含めることができます)
4. グループ化する前に where を使用して条件をフィルターし、グループ化した後に had を使用します (コードは実行の順序です)
実行順序: from > on> join > where > group by > with > getting >select > Distinct > order by > limit
- 実行は最初から開始されるため、エイリアスは通常ここに名前を付けます。select で名前を付けることもできますが、select は後で実行され、先頭に名前が付けられます。これらの場所はいずれも実行には使用されません。
- 制限は常に最後に実行されます
- 5.---スコアが 60 を超えるグループの学生からクラス ID、平均 (スコア) を選択しますby classid hasving classid
左結合: 左のテーブルのデータは、結合条件 (以降の部分を含む) に基づきません。 the and) フィルタリングしてすべてを表示します。後で where や他の条件を追加するなど、他の条件もフィルタリングできます。
右のテーブルに接続条件を満たさない値のデータがある場合、右のテーブルのデータはnull、左のテーブルはすべて表示されます
- この演算子は、2 つの結果セットの結合を取得するために使用されます。この演算子は、結果セット内の重複行を自動的に削除し、データの内容がまったく同じである場合に自動的に重複を排除します。
まずスコア > 60 の行を検索し、クラス ID に従ってグループ化します。得られた結果からクラス
6.group by は、繰り返しの行を 1 つの行にマージすることです
7。 group by フィールド数が多い場合はマージできない場合がありますが、グループ化の効果は得られ、集計関数も使用できます。
3.HAVING
GROUP BY 句でグループ化した後、グループ化された結果を条件付きでフィルターする必要がある場合、WHERE ステートメントは使用できず、HAVING を使用する必要があります。 HAVING は GROUP BY
の後に実行されます2.ユニオン クエリ ((強調) 複数のテーブル)
1.内部結合
構文:
2 番目の方法では、接続条件とフィルタリング結果セット条件の違いが区別できない場合があります。どちらを使用しても構いませんが、後続の外部結合に対応するために、最初のものを優先してください。内部結合は、取得したデカルト積に接続条件を与えるのと等価です。
ここで group by を使用しない場合は、次のような 1 行だけになります。これは等価です。すべての生徒の得点を合計します。必要なのは各学生の合計スコアなので、最初に学生 ID に従ってグループ化する必要があります。
2. 外部結合
外部結合は、左外部結合と右外部結合に分けられます。左外部結合は、結合クエリを実行したときに左側のテーブルが完全に表示される場合の接続方法であり、右外部結合は、結合クエリが実行された場合に右側のテーブルが完全に表示される場合の接続方法です。
注:
構文: (注: on の後に where を続けることもできます)
同じクエリこの方法では、今回は 8 位の結果が表示されます。 空の学生情報の場合、左のテーブル、つまり学生テーブルのすべてのデータが表示され、接続条件 stu.id = sco の影響を受けません。 Student_id. 前の 以内の場合 接続時、 は学生「中国語学習外国人」 の情報を表示できません。は、sco テーブルにある学生「中国語を学習する外国人」の ID ではありません。
3.自己結合
自己結合とは、同じテーブル内で自分自身を接続してクエリを実行することを指します。
使用シナリオ: 同じテーブル内の複数の行を比較します。
注: 自己結合クエリは、join on ステートメントを使用してクエリすることもできます。
4. サブクエリ
サブクエリは、他の SQL ステートメントに埋め込まれた選択ステートメントを指し、ネストされたクエリとも呼ばれます
クエリとクラスメート「卒業したくない」学生の数: (自己結合)
複数行サブクエリ: 複数行のレコードを返すサブクエリ (頻繁に使用されます)
ケース: 「中国語」または「英語」コースのスコア情報をクエリする: (内部接続)
ここでグループ化します。マージには役割を果たしませんが、グループ化には役割を果たします
5. マージ クエリ
実際のアプリケーションでは、実行をマージするために、結果として、集合演算子 Union、Union all を使用できるようになります。 UNION および UNION ALL を使用する場合、クエリの前後の 結果セット内のフィールドは 一貫している必要があります。
#**場合によっては、複数のテーブルを関連付けることはできませんが、同じフィールド内のデータをクエリする必要があります。**ユニオンは or より効率的です- ##union
ケース: ID が 3 未満、または名前が「English」のコースをクエリする:
- union all
この演算子は、2 つの結果セットの和集合を取得するために使用されます。この演算子を使用すると、結果セット内の重複行は削除されません。 (取得したデータが全く同じ場合は重複せず表示されます)
#ケース: ID が 3 未満または名前が「Java」のコースをクエリする
以上がMySQL の集計クエリとユニオン クエリの操作の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。

MySQLでデータを挿入するための効率的な方法には、次のものが含まれます。1。insertInto ...値構文、2。LoadDatainFileコマンドの使用、3。トランザクション処理の使用、4。バッチサイズの調整、5。Insurtignoreまたは挿入の使用...

MySQLでは、AlterTabletable_nameaddcolumnnew_columnvarchar(255)afterexisting_columnを使用してフィールドを追加し、andtabletable_namedopcolumncolumn_to_dropを使用してフィールドを削除します。フィールドを追加するときは、クエリのパフォーマンスとデータ構造を最適化する場所を指定する必要があります。フィールドを削除する前に、操作が不可逆的であることを確認する必要があります。オンラインDDL、バックアップデータ、テスト環境、および低負荷期間を使用したテーブル構造の変更は、パフォーマンスの最適化とベストプラクティスです。

説明コマンドを使用して、MySQLクエリの実行計画を分析します。 1.説明コマンドは、パフォーマンスのボトルネックを見つけるのに役立つクエリの実行計画を表示します。 2。実行計画には、ID、select_type、table、type、baining_keys、key、key_len、ref、行、およびextraなどのフィールドが含まれます。 3。実行計画によると、インデックスを追加し、完全なテーブルスキャンを避け、参加操作の最適化、オーバーレイインデックスの使用により、クエリを最適化できます。

サブクエリは、MySQLクエリの効率を向上させることができます。 1)Subqueryは、データのフィルタリングや集約値の計算など、複雑なクエリロジックを簡素化します。 2)MySQL Optimizerは、サブクエリを操作に参加させてパフォーマンスを向上させることができます。 3)INの代わりに存在することは、複数の行の戻りエラーを回避できます。 4)最適化戦略には、関連するサブ征服の回避、存在の使用、インデックスの最適化、およびサブクエリネスティングの回避が含まれます。

MySQLで文字セットと照合を構成する方法は次のとおりです。1。サーバーレベルでの文字セットとコレクションの設定:setNames'utf8 '; setCharacterSetutf8; setCollation_connection = 'utf8_general_ci'; 2。特定の文字セットと照合を使用するデータベースを作成します:createdatabaseexample_dbcharactersetutf8collateutf8_general_ci; 3.テーブルを作成するときに文字セットとコレクションを指定:createTableExample_table(idint

安全かつ徹底的にMySQLをアンインストールし、すべての残留ファイルをクリーンにするには、次の手順に従ってください。1。MySQLサービスを停止します。 2。MySQLパッケージをアンインストールします。 3.構成ファイルとデータディレクトリのクリーン。 4.アンインストールが徹底していることを確認します。

MySQLでデータベースを変更するには、間接的な方法が必要です。手順は次のとおりです。1。新しいデータベースを作成します。 2。mysqldumpを使用して、古いデータベースをエクスポートします。 3.データを新しいデータベースにインポートします。 4.古いデータベースを削除します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 中国語版
中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









