MySQLのクエリー操作
3756 ワード
1.基本的なクエリー操作
デポジット
ソートorder by
条件クエリーwhere
ps:演算子の優先度:算術>接続>比較>論理
パケットクエリ(groupby)記述:テーブル内のデータをいくつかのグループ構文に分割する:selectフィールドfrom where条件groupbyフィールドorder byフィールド
フィルタhaving記述:パケットをフィルタリングした後の結果はgroupbyの後ろにしか現れない
実行プロセス:from–where–group by---having–select---order byページング
ファジイクエリ
2.内部接続と外部接続
(1)内部接続:
注意:一般的に2枚の表示が外部キーで接続されている場合は、1,2番目のクエリー・メソッドを使用し、外部キーで接続されていない場合は1つのクエリー・メソッドを使用します.第3のusingには、2つのテーブルのフィールド名が同じフィールドが入力され、汎用カラムフィールドには1回(重複するフィールドを除去)の接続の特徴しか表示されません.関連テーブルに表示されるフィールド値は、結果セット に最終的に表示されます.内接続順序に関係なく(2)外接続:左外接続記述:2つのテーブルは、接続中に条件を満たす行を返すほか、左表の条件を満たさない行を返す.この接続を左外接続と呼ぶ. に自動的に一致します.は主従に分けられ、接続順序に関係する である.どちらがプライマリ・テーブルであるかは、どのテーブルを巡回し、テーブルから対応するレコードに一致し、一致せずに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:会发生去重用法:
使用要件:結合された結果セットが一致する必要があります(2つのテーブルが一致し、クエリーのフィールドも一致します).そうしないと、エラーが発生します.
sqlの交差、差セット、およびセットについて:
#
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回(重複するフィールドを除去)の接続の特徴しか表示されません.
# :
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; ( )
外部接続の特徴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の交差、差セット、およびセットについて: