sql接続クエリー、サブクエリー、ページングクエリー

3417 ワード

ないぶせつぞく
内部ジョインクエリ、有効なデカルト積の除去は、次の2つに分けられます.
  • 暗黙的内部接続:select*from A別名1、B別名2 where別名1.xx=別名2.xx;
  • は内部接続を示します:select*from A別名1 inner join B別名2 on別名1.xx=別名2.xx;(innerは省略可能)
  • 使用する比較方法によって、内部接続は等値接続、自然接続、自己接続の3種類に分けられます
  • 等値接続:"="関係を使用してテーブルを接続するクエリー.クエリーの結果、接続されたテーブルのすべてのカラムがリストされます.重複カラムが含まれます.
  • 自然接続:等値接続で重複する列を削除し、形成された接続;
  • 自己接続:1つの接続クエリーで、関連する2つのテーブルは同じテーブルです.

  • 自己接続の例を示します.
    select e.name,m.name
    from employees e
    join employees m
    on e.id = m.id;
    
    がいぶせつぞく
    左外部ジョインと右外部ジョインに分けて、1つのテーブルに別のテーブルにないレコード・クエリーの結果=内部ジョインの結果+プライマリ・テーブルにテーブルからないレコードがあることをクエリーします.
  • 左外接続:select*from A left join B on条件(メインテーブルはA)左外接続は等値接続にメインテーブルの未整合データ
  • を加える.
  • 右外部接続:select*from A right join B on条件(メインテーブルはB)
  • 全外接続は、左外接続と右外接続の集合
  • である.
    サブクエリ
    サブクエリは、クエリにクエリがあり、1つのselect文の結果が別のselect構文の一部(クエリ結果、クエリ条件、テーブルなど)として使用されます.
    例えば、当社で最も給料が高い従業員の詳細を調べる
     select* 
     from emp
     where sal=(
     select max(sal)
     from emp
     );
    
    条件としては、=,>,=,<=,!=を使用できます.複数行単列:All ANY IN not INの例:select*from emp where sal>All(select sal from emp where tno=1)
    行サブクエリ(1行複数列、複数行複数列):1行複数列の例
    select *
    from employees
    where (employees.sal)=(
    select min(sal),max(sal)
    from employees
    );
    
    ページ別に照会する
    表示されたデータが1ページで表示されない場合は、構文をページングする必要があります.最後にlimit[offset,]sizeを追加します.offset::表示する開始インデックス(0から)size:表示するエントリの数
    たとえば、最初の5つの従業員情報を問い合わせる
    select * from employees limit 0,5;