データベース:DQLアクション
目次
一、基本クエリー
1.基本構文フォーマット
2.一般的なクエリー
二、高級クエリー
1.関連クエリー(接続クエリーとも呼ばれる)
2.サブクエリ
3.連結クエリー:連結結果セット
一、基本クエリー
1.基本構文フォーマット
構文フォーマット
さぎょう
selectフィールドまたは式
結果セットの表示
fromテーブル、ビュー、または結果セットなど
データ・ソースの指定
where検索条件
検索条件の指定
groupbyフィールド
フィールドごとのグループ化の指定
having検索条件
groupbyの後に使用して、検索条件を指定します
order byフィールド
フィールド別のソートを指定します.デフォルトの増分asc、降順desc
Limit初期インデックス、長さ
制限の結果、インデックスは0から始まり、0の場合は書き込みのみを省略できます
2.一般的なクエリー
2.1 select表示結果セットの指定
2.2 where検索条件の指定:リレーショナル演算子、論理演算子、inキーワード、Null値の有無、範囲クエリーbetween and
2.3 distinctキーワードの再表示
2.4別名の取得
2.5ソートorder byと制限結果クエリーlimit
2.6ファジイクエリ
キーワードとワイルドカード:ファジイクエリ:like %:0~複数の文字を表す _:1ビット文字を表す サンプルコード:
二、高級クエリー
1.関連クエリー(接続クエリーとも呼ばれる)
1.1定義:複数のテーブルまたは結果セットを問い合わせる
1.2分類:内部接続と外部接続
1.3内部接続
構文の形式:
特徴まとめ:複数の関連テーブルに共通するレコードが結果セットに表示されます. 内の接続の結果は、接続順序に関係ありません.
1.4外部接続
構文の形式:左外接続:left[outer]join...on... 右外部接続:right[outer]join...on... サンプルコード:
特徴まとめ:外部接続結果は、接続順序に関係します. は、プライマリ・スレーブ・テーブルに分けられ、プライマリ・テーブルの各レコードを順次巡回して関連テーブルとマッチングし、マッチングが成功すると関連付けが結果セットに表示され、マッチングが失敗するとnullで埋め込まれます.
2.サブクエリ
1.1クエリー結果を別のクエリーとして使用する条件または構成を定義して、検索を続行します.
2.2分類
1行サブクエリ1行サブクエリ:サブクエリが返す結果はレコードです.
複数行サブクエリ:サブクエリが返す結果は複数レコード
2.3 1行サブクエリ
サンプルコード:
2.4複数行サブクエリ
2.4.1キーワード:anyとall
2.4.2キーワード:exists
サンプルコード:
inとexsitsの違い: inサブクエリを先に実行し、existsはメインクエリ を先に実行する. in注釈サブクエリの戻り値を閉じるフィールド情報が必要です.existsは、戻りフィールド に関心を持つ必要はありません. existsは、プライマリ・クエリのレコードをサブクエリに順次一致させ、一致がtrue表示を返す場合.
2.5まとめ
関連クエリーはいつ使用しますか?サブクエリはいつ使用しますか?クエリー結果に複数のテーブルが存在する場合、関連クエリーを使用します.クエリーの結果がテーブルに存在する場合は、サブクエリーを使用します. 関連クエリーはリソース消費量が高く、サブクエリーはリソース消費量が低いが、複数のクエリーが存在する可能性がある.
3.連結クエリー:連結結果セット
3.1条件
複数の結果セットのフィールドは、クエリーを統合するために一貫性を保つ必要があります.
3.2キーワード
union:結果セットを結合して重量を除去
union all:連合結果セットは重くないが重くない
3.3共同クエリーを使用する理由
理論的には連合クエリーの代わりにorキーワードを使用することができるが、orキーワードはインデックスの失効を招くため、連合クエリーを使用する.
3.4サンプルコード
一、基本クエリー
1.基本構文フォーマット
2.一般的なクエリー
二、高級クエリー
1.関連クエリー(接続クエリーとも呼ばれる)
2.サブクエリ
3.連結クエリー:連結結果セット
一、基本クエリー
1.基本構文フォーマット
構文フォーマット
さぎょう
selectフィールドまたは式
結果セットの表示
fromテーブル、ビュー、または結果セットなど
データ・ソースの指定
where検索条件
検索条件の指定
groupbyフィールド
フィールドごとのグループ化の指定
having検索条件
groupbyの後に使用して、検索条件を指定します
order byフィールド
フィールド別のソートを指定します.デフォルトの増分asc、降順desc
Limit初期インデックス、長さ
制限の結果、インデックスは0から始まり、0の場合は書き込みのみを省略できます
2.一般的なクエリー
2.1 select表示結果セットの指定
# 3 sql , !
#1. emp
select * from emp;
#2. emp
select ename, job from emp;
2.2 where検索条件の指定:リレーショナル演算子、論理演算子、inキーワード、Null値の有無、範囲クエリーbetween and
#3. emp 20
select * from emp where deptno=20;
#4. emp 2000
select ename, sal from emp where sal > 2000;
#5. emp 1000 2000 ( )
select * from emp where sal > 1000 and sal < 2000;
select * from emp where sal between 1000 and 2000;
#6. emp 7788,7369,7521
select * from emp where empno = 7788 or empno = 7369 or empno = 7521;
select * from emp where empno in (7788,7369,7521);
#9. emp 。(comm )
select * from emp where comm is null;
select * from emp where comm is not null;
2.3 distinctキーワードの再表示
#7. emp ( )
select distinct job from emp;
2.4別名の取得
#8. emp 5% ( : 、 、 、 )
# :[as]
select ename,sal * 1.05 nsal from emp;
select emp.ename,emp.sal from emp;
select e.ename,e.sal from emp e;
2.5ソートorder byと制限結果クエリーlimit
#10. emp
# : SQL
# :
# :order by ( ,asc ,desc )
# , ,
select * from emp order by sal desc, empno desc;
# ( :limit , , 0 , 0 ,
# , limit 5, 5 ), mysql。
select * from emp order by sal desc limit 1;
2.6ファジイクエリ
キーワードとワイルドカード:
#11. s ( :like %: 0 _: 1 )
select * from emp where ename like '%s%';
select * from emp where ename like 's%';
select * from emp where ename like '%s';
# 3 L
select * from emp where ename like '__L%';
二、高級クエリー
1.関連クエリー(接続クエリーとも呼ばれる)
1.1定義:複数のテーブルまたは結果セットを問い合わせる
1.2分類:内部接続と外部接続
1.3内部接続
構文の形式:
# emp
# :
#where
select * from emp,dept where emp.deptno = dept.deptno;
# :inner join … on
select * from emp inner join dept on emp.deptno = dept.deptno;
# : ,
select * from emp inner join dept using(deptno);
特徴まとめ:
1.4外部接続
構文の形式:
# ( )
select * from dept left join emp on emp.deptno = dept.deptno;
select * from dept left join emp on dept.deptno = emp.deptno;
# ( , )
select * from emp natural join dept;
# 20
select * from emp , dept where emp.deptno = dept.deptno and emp.deptno=20;
select * from (select * from emp where deptno = 20) e,dept where e.deptno=dept.deptno;
# (mgr) ( )
select e1.ename ' ', e2.ename ' ' from emp e1 left join emp e2 on e1.mgr=e2.empno;
特徴まとめ:
2.サブクエリ
1.1クエリー結果を別のクエリーとして使用する条件または構成を定義して、検索を続行します.
2.2分類
1行サブクエリ1行サブクエリ:サブクエリが返す結果はレコードです.
複数行サブクエリ:サブクエリが返す結果は複数レコード
2.3 1行サブクエリ
サンプルコード:
# 7788
# :
select dept.* from (select * from emp where empno = 7788) e, dept where e.deptno=dept.deptno;
# : ( )
# 7788 , ( )
select * from dept where deptno = (select deptno from emp where empno = 7788);
# >20
select * from emp where sal > (select avg(sal) from emp where deptno = 20);
# >20 20
select * from emp where sal > (select avg(sal) from emp where deptno = 20) and deptno<>20;
2.4複数行サブクエリ
2.4.1キーワード:anyとall
# :any / all:
# =any: in >any: all: 2000);
#
#
select emp.* from emp , (select deptno , avg(sal) avg from emp group by deptno) e where
emp.deptno = e.deptno and sal > e.avg;
#
# :
#1. deptno
#2. deptno
#3.
#4. 。
select * from emp e1 where sal > (
select avg(sal) from emp e2 where e2.deptno = e1.deptno
);
2.4.2キーワード:exists
サンプルコード:
# >2000
#exists:
#1.
#2. , , true, ;
# false,
select * from dept where exists (
select * from emp where sal > 2000 and emp.deptno = dept.deptno
);
inとexsitsの違い:
2.5まとめ
関連クエリーはいつ使用しますか?サブクエリはいつ使用しますか?
3.連結クエリー:連結結果セット
3.1条件
複数の結果セットのフィールドは、クエリーを統合するために一貫性を保つ必要があります.
3.2キーワード
union:結果セットを結合して重量を除去
union all:連合結果セットは重くないが重くない
3.3共同クエリーを使用する理由
理論的には連合クエリーの代わりにorキーワードを使用することができるが、orキーワードはインデックスの失効を招くため、連合クエリーを使用する.
3.4サンプルコード
# 20 >2000
select * from emp where deptno = 20 or sal > 2000;
select * from emp where deptno = 20 union select * from emp where sal > 2000;
select * from emp where deptno = 20 union all select * from emp where sal > 2000;