ホームページ  >  記事  >  データベース  >  MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)

MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)

coldplay.xixi
coldplay.xixi転載
2021-04-19 10:29:532071ブラウズ

MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)

デカルト積

デカルト積とは、数学における 2 つのセット X と Y のデカルト積を指します。直積とも呼ばれる積は、X × Y で表されます。最初のオブジェクトは X のメンバーであり、2 番目のオブジェクトは Y のすべての可能な順序ペアのメンバーの 1 つです [3]。
セット A={a, b} およびセット B={0, 1, 2} と仮定すると、2 つのセットのデカルト積は {(a, 0), (a, 1), (a, 2)、(b, 0)、(b, 1)、(b, 2)}。

関連する無料学習の推奨事項: mysql ビデオ チュートリアル

インナー コネクション

select 字段 from 表1 别名1 [inner] join 表2 别名2 on 连接条件 and 其他条件;select 字段 from 表1 别名1,表2 别名2 where 连接条件 and 其他条件;

MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)

#外部結合

外部結合は、左外部結合と右外部結合に分かれます。結合クエリが実行され、左側のテーブルが完全に表示されている場合は左外部結合、右側のテーブルが完全に表示されている場合は右外部結合と呼ばれます。

--左外连接,表1完全显示select 字段名 from 表名1 left join 表名2 on 连接条件;-- 右外连接,表2完全显示select 字段 from 表名1 right join 表名2 on 连接条件;

MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)
MySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)

自己接続

行間の比較に関しては、接続

例: 「Java」グレードよりも「Computer Principles」のグレードが高いすべてのグレード情報を表示する

-- 先查询“计算机原理”和“Java”课程的idselect id,name from course where name='Java' or name='计算机原理';-- 再查询成绩表中,“计算机原理”成绩比“Java”成绩 好的信息SELECTs1.*FROMscore s1,score s2WHEREs1.student_id = s2.student_idAND s1.score <pre class="brush:php;toolbar:false">-- 也可以使用join on 语句来进行自连接查询SELECTs1.*FROMscore s1JOIN score s2 ON s1.student_id = s2.student_idAND s1.score <p>サブクエリ<strong></strong></p>サブクエリとは、次の Select ステートメントに埋め込まれたサブクエリを指します。他の SQL ステートメントは、ネストされたクエリとも呼ばれます。 <p> 単一行サブクエリ: 1 行のレコードを返すサブクエリ <br> ケース: クエリと「Xiaobai」のクラスメート: <br></p><pre class="brush:php;toolbar:false">select * from student where classes_id=(select classes_id from student wherename='小白');
複数行サブクエリ: 複数行のレコードを返すサブクエリ

    [NOT] IN キーワード:
  1. 最初にサブクエリの SQL を実行し、
    結果をメモリに格納します それから外側のクエリを実行し、与えられた結果を直接格納します。サブクエリの結果に制限条件を付けてフィルタリングします。 (メモリに依存し、サブクエリの結果セットが比較的小さい状況に適しています)
  2. [NOT] EXISTS キーワード:
  3. 最初に外側のクエリを実行し、各外側のクエリのレコードを順番に取得します。内部クエリ内に組み込みます。
    内部クエリの結果セットが空でない場合は、外部クエリの結果を保持します。
    内部クエリの結果セットが空の場合、外部クエリの結果を破棄します。 query

    メモリに依存しない。外部クエリの結果セットが小さく、サブクエリの結果セットが比較的大きい状況に適しています
#マージ クエリ

For 複数の選択の実行結果をマージするには、集合演算子の Union および Union All を使用できます。 UNION

と UNION ALL を使用する場合、前後のクエリの結果セット内のフィールドは一貫している必要があります。


union
この演算子は、2 つの結果セットの和集合を取得するために使用されます。この演算子を使用すると、結果セット内の重複行が自動的に削除されます。 ケース: ID が 3 未満、または名前が「English」のコースをクエリする:

select * from course where id<br>union all<p><strong> この演算子は、2 つの和集合を取得するために使用されます。結果セット 。この演算子を使用すると、結果セット内の重複行は削除されません。 </strong> ケース: ID が 3 未満、または名前が「Java」のコースをクエリする: <br></p><pre class="brush:php;toolbar:false">-- 可以看到结果集中出现重复数据Javaselect * from course where id<br><blockquote>関連する無料学習の推奨事項: <p><strong></strong>mysql データベース## #######(ビデオ)#########</p>
</blockquote>

以上がMySQLのユニオンクエリの詳しい説明(INとEXISTSの違い)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。