mysqlサブクエリ文の詳しい説明

PHPz
リリース: 2023-04-19 14:43:38
オリジナル
3609 人が閲覧しました

MySQL は、データの保存と管理に広く使用されているリレーショナル データベース管理システムです。 MySQL では、サブクエリは一般的なステートメント形式です。この記事では、MySQL のサブクエリ ステートメントを紹介し、読者がサブクエリをよりよく理解して使用できるようにいくつかの例を示します。

1. サブクエリとは

サブクエリは、別のクエリに含まれるクエリ ステートメントであり、通常は SELECT、INSERT、UPDATE、または DELETE ステートメントにネストされます。 MySQL では、サブクエリをクエリの一部として実行して、検索条件や計算項目を提供できます。サブクエリは、クエリをより柔軟、正確、効率的にできる非常に強力なステートメント形式です。サブクエリは複数のレベルにネストできますが、クエリが複雑になりすぎないように注意してください。

2. サブクエリ構文

MySQL のサブクエリ構文は、式サブクエリと SELECT サブクエリの 2 つのタイプに分類できます。

  1. 式サブクエリ構文:

SELECT … FROM … WHERE 列名演算子 (SELECT 列名 FROM テーブル名 WHERE 条件);

この構文では、次の演算子が使用されます。定数とフィールド名は、等しい、等しくない、より小さい、より大きいなどにすることができます。さらに、サブクエリの結果には 1 行 1 列のみが含まれている必要があります。そうでない場合はエラーが返されます。同時に、サブクエリを使用して、結果セットの最大値、最小値、合計、平均をクエリすることもできます。

  1. SELECT サブクエリ構文:

SELECT 列名 1、列名 2、… FROM テーブル名 WHERE 列名演算子 (SELECT 列名 FROM テーブル名 WHERE 条件);

この例では構文では、SELECT サブクエリが外部クエリの WHERE 句に追加されます。サブクエリは単一の値を返す必要があります。それ以外の場合はエラーが返されます。さらに、SELECT サブクエリは、WHERE 句であらゆるタイプの比較演算を実行できます。

3. サブクエリの例

次の例は、MySQL でのサブクエリの使用法を示しています。

  1. クラス平均よりも高いスコアを持つすべての生徒の情報をクエリします。

SELECTstudent_id,student_name,score FROM Student WHEREスコア> (SELECT AVG(score) FROM Student);

このステートメントでは、各生徒は最初にstudentテーブルからクエリされます。生徒番号、名前、得点を入力し、サブクエリを通じてクラスの平均得点を計算し、平均得点と各生徒の得点を比較します。最終的には対象となる学生情報が返却されます。

  1. 従業員の給与が平均給与より高い部門の名前と部門の平均給与をクエリします。

SELECT 部門名、AVG(給与) として avg_salary FROM 従業員 INNER JOIN 部門 ON 従業員.部門 ID = 部門.部門 ID WHERE 給与 > (SELECT AVG(給与) FROM 従業員) GROUP BY 部門名;

このステートメントでは、まず平均給与より高い給与を持つ従業員を部門テーブルに結合し、サブクエリを使用して会社全体の平均給与を計算します。最後に、部門名でグループ化して、各部門の名前と平均給与を取得します。

  1. 著者が 100 ページを超える本を何冊書いたかをクエリします。

SELECT COUNT(*) FROM Books WHERE author_id IN (SELECT author_id FROM author WHERE name = 'John Smith') AND length > 100;

このステートメントでは、最初にクエリを実行します。次に、著者「John Smith」の ID を使用して、著者 ID と書籍の長さに基づいて基準を満たす書籍をフィルタリングします。最後に、COUNT 関数を使用して、クエリの結果セット内のレコード数を返します。

4. 概要

MySQL のサブクエリは、クエリの精度と効率をさらに向上させることができる非常に便利なステートメント形式です。この記事では、MySQL のサブクエリ構文と例を紹介します。学習を通じて、MySQL のサブクエリ ステートメントをよりよく理解し、習得できるようになり、読者が MySQL データベースをより適切に適用できるようになります。

以上がmysqlサブクエリ文の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート