MySQLのクエリー操作


1.基本的なクエリー操作
#    
select * from emp;   //  emp      
select empno, job,ename from emp;  //  emp       
select ename as    from emp;   //      

デポジット
select distinct deotno from emp; //      (      )

ソートorder by
#     (asc),  (desc)
select  *  from emp order by sal desc;    //        
select  *  from epm order by sal , deptno  //     
select  sal*12  annsal  from epm order by annsal   //    

条件クエリーwhere
select  *  from emp where sal>1000;   //    1000 
select  *  from emp where sal>1000  and  sal<2000;
select  *  from emp where sal>5000  or  sal<1000
select  *  from emp where sal<>2500   //     2500
select  *  from emp where sal  is null   //     
select  *  from emp where sal>0 or 1=1;  //   

ps:演算子の優先度:算術>接続>比較>論理
パケットクエリ(groupby)記述:テーブル内のデータをいくつかのグループ構文に分割する:selectフィールドfrom where条件groupbyフィールドorder byフィールド
# :
select    from where    group by    order by   
ps: group  by   ,select   ,   group by     。             

フィルタhaving記述:パケットをフィルタリングした後の結果はgroupbyの後ろにしか現れない
# :
select deptno , count(1),avg(sal) from emp group by deptno having avg(sal) >2000
select avg(sal) avg_sal,deptno from emp group by deptno having  avg_sal>2000;

実行プロセス:from–where–group by---having–select---order byページング
# :
select * from emp limit 0 , 5 ;  //  1    , 5 

ファジイクエリ
 :
select * from emp where ename like 's%'
ps:
%:  0~      
_:  1     

2.内部接続と外部接続
(1)内部接続:
#  :
select  table1.column,table2.column from table1,table2 where table1.column= table2.column
select dept.DEPTNO,ename ,dname from emp inner join dept on emp.DEPTNO =dept.DEPTNO
select emp.ename,dept.dname from emp inner join dept using(deptno)

注意:一般的に2枚の表示が外部キーで接続されている場合は、1,2番目のクエリー・メソッドを使用し、外部キーで接続されていない場合は1つのクエリー・メソッドを使用します.第3のusingには、2つのテーブルのフィールド名が同じフィールドが入力され、汎用カラムフィールドには1回(重複するフィールドを除去)の接続の特徴しか表示されません.
  • 関連テーブルに表示されるフィールド値は、結果セット
  • に最終的に表示されます.
  • 内接続順序に関係なく(2)外接続:左外接続記述:2つのテーブルは、接続中に条件を満たす行を返すほか、左表の条件を満たさない行を返す.この接続を左外接続と呼ぶ.
    # :
    select deptno ,dname,empno,ename from dept left join emp  using(deptno)   //    
    右外部ジョインの説明:2つのテーブルは、ジョイン中に条件を満たすローを返す以外に、右外部ジョインと呼ばれる条件を満たさないローを返します.
    # :
    select deptno ,dname,empno,ename from dept right join emp  using(deptno)   //    
    全外部接続の説明:2つのテーブルは、接続中に条件を満たすローを返すほか、2つのテーブルの条件を満たさないローを返します.この接続を全外部接続と呼びます.(デカルト積)
    # :
    select deptno ,dname,empno,ename from dept full join emp  using(deptno)   //    
    自然接続説明:特殊な等値接続:等しいフィールドを宣言する必要はなく、
    # :
    select * from emp natural join dept;    (    )
    外部接続の特徴
  • に自動的に一致します.
  • は主従に分けられ、接続順序に関係する
  • である.
  • どちらがプライマリ・テーブルであるかは、どのテーブルを巡回し、テーブルから対応するレコードに一致し、一致せずにnullで
  • を埋め込む.
    3.サブクエリ
    構文:selectフィールドfrom table where式operator(サブクエリフィールド).特徴:サブクエリはメインクエリの前に一度実行され、メインクエリはサブクエリの結果を使用します: -単行サブクエリ:サブクエリを使用した結果が1行の場合、比較演算子(><>) -複数行サブクエリを使用できます:サブクエリを使用した結果が複数行の場合、all、any in -exists:select from dept e where exists(select from emp e 1 where sal>2000 and e 1.deptno=e.deptno)inとexistsの違い: -in:サブクエリを先に実行し、結果をメインクエリに返し、メインクエリは引き続きサブクエリーと関連クエリーの使用タイミング -サブクエリー:クエリー条件と結果が同じテーブルに配置されます -関連クエリー、クエリー条件と結果が複数のテーブルに分散されます
    3.共同クエリー
    キーワード:union、union all.区别: -union:会发生去重 -union all:会发生去重用法:
    # :
    select * from emp where sal>2000 union select * from emp where deptno>20
    select * from emp where sal>2000 union all select * from emp where deptno>20

    使用要件:結合された結果セットが一致する必要があります(2つのテーブルが一致し、クエリーのフィールドも一致します).そうしないと、エラーが発生します.
    sqlの交差、差セット、およびセットについて: