マルチライン機能
- 複数の行範囲、値を返します
番号 |
名前 |
タイプ |
説明 |
1 |
EMPNO |
NUMBER(4) |
番号:4桁 |
2 |
ENAME |
VARCHAR2(10) |
名前:10 桁の文字 |
3 |
ジョブ |
VARCHAR2(9) |
オフィス |
4 |
MGR |
NUMBER(4) |
いいえリーダーシップ:リーダーシップは、会社の従業員ではありません |
5 |
HIREDATE |
日付 |
エントリー日 |
6 |
WILL |
NUMBER(7,2) |
小数点以下2桁基本給、5つの整数、7の合計 |
7 |
COMM |
NUMBER(7,2) |
年末の賞 |
8 |
DEPTNO |
2番) |
従業員の部門番号 |
図 1-1 (EMPの従業員テーブル)
グループ化機能:複数のライン、戻り値に作用します。
lは 、レコードの数を数えるカウント(*);注意:この関数は、NULL値を無視します。
L 最小値クエリー分()。
L 最大クエリ MAX()。
L個の クエリ平均値 AVG()。
L個の 加算関数 SUM()。
グループその後、グループにデータあれば、指定のプレス列、複数行の統計機能のためのデータのセット。
例:各部門のクエリの数は:、DEPTNOによるEMPグループからのカウント(*)をDEPTNOを選択します。
例えば、各部門のクエリの平均給与:セレクトDEPTNO、AVG(SAL)EMP群からDEPTNOによって、
- このようなグループ機能を使用すると、 SQLのグループ化基準は、フィールドのみでグループとグループ化機能をチェックし、他のフィールドがあることができます。
例えば:DEPTNOによってEMP群から選択DEPTNO、ジョブ、AVG(SAL); - 错误
例えば:DEPTNOによってEMP基、ジョブから選択DEPTNO、ジョブ、AVG(SAL); - 正确
- グループ化機能を使用することなく、使用されるフィールドによってグループを、パケットの値のみクエリ機能することができます。
例:EMPからAVG(SAL)を選択します。
フィルタリングデータパケットました
例:持つとどこ達成することができて、2000年より平均給与大きいセクターをチェックアウト:
DEPTNO、DEPTNO有する平均(SAL)によってEMP群からAVG(SAL)> 2000を選択し、
(DEPTNOによるEMPグループからAVG(SAL)SAL、DEPTNOを選択)SAL> 2000年から*選択します。
例:クエリ部門の賃金は、1500のセクターの平均賃金よりも大きいです。
DEPTNOによってEMPここSAL> 1500群からDEPTNO、AVG(SAL)を選択します。
マルチテーブルクエリ
- 複数の行範囲、値を返します
番号 |
名前 |
タイプ |
説明 |
1 |
DEPTNO |
2番) |
これは、2桁の部門番号を表し |
2 |
DNAME |
VARCHAR2(14) |
最大の部門名、14の文字 |
3 |
LOC |
VARCHAR2(13) |
場所部門 |
図 1-1分割テーブル(DEPT)
番号 |
名前 |
タイプ |
説明 |
1 |
EMPNO |
NUMBER(4) |
番号:4桁 |
2 |
ENAME |
VARCHAR2(10) |
名前:10 桁の文字 |
3 |
ジョブ |
VARCHAR2(9) |
オフィス |
4 |
MGR |
NUMBER(4) |
いいえリーダーシップ:リーダーシップは、会社の従業員ではありません |
5 |
HIREDATE |
日付 |
エントリー日 |
6 |
WILL |
NUMBER(7,2) |
小数点以下2桁基本給、5つの整数、7の合計 |
7 |
COMM |
NUMBER(7,2) |
年末の賞 |
8 |
DEPTNO |
2番) |
従業員の部門番号 |
図 1-2 (EMPの従業員テーブル)
マルチテーブルクエリとは何ですか
lの文は、マルチテーブルクエリの操作に適用する必要があり、複数のテーブルからデータを表示する必要があります。
デカルト積とは何ですか?
lの数学的概念:関係演算のセット(関係のすべての組み合わせの集合)
では、SQLデカルト積を実現:、のemp eから* DEPTの選択 e.empnoによってDの順序を、e.deptno;
ソリューションは、無効なデータデカルト積を発行する必要があり、EN(----:
- コネクタ内暗黙:。A.関連分野関連するフィールドA、B = Bから
- 明示的な内部接続: ..内部結合A Bから関連フィールド関連付けられたフィールド上= B)。
EMP電子SELECT * FROM、DEPTのDここe.deptno = d.deptno; -隐式
インナーe.deptnoにDEPT dを参加EMP Eから選択* = d.deptno; -显式
概要
Lの接続は、この表示データの要件を満たすことができる2つのデータテーブルが必要です。
リットルの 質問:何の部門の従業員はありません。クエリ部門に関連する情報を表示するには?----外部接続
外側のコネクタ(内オラクルはで書かれた特別なを持っています)
- 外側左:参照テーブルを左側に、左側のテーブルは、すべてのデータを表示され、何のデータが右側に表示されていないヌル
B表から。関連分野= B。関連分野に参加左
- 右の外部接続:右への参照テーブル、右側のテーブルのすべてのデータを表示しているが、データは左の表に表示されていないヌル
表から右。関連するフィールド= B。関連性フィールドにBに参加
- 外部接続(オラクルで書かれた特別ながある)、それは例えば、接続されて残されています
A、B FROM WHERE A.関連性フィールド(+)=関連分野からB - それは一般的ではないので、そのようなアプローチは、推奨されません
クエリので、
- 外側左:参照テーブルを左側に、左側のテーブルは、すべてのデータを表示され、何のデータが右側に表示されていないヌル
例:従業員の名前、位置、リーダーシップ名識別:EMP mのe.mgr = m.empno、EMP電子SELECT * FROMを。
問題:なしリーダーシップ、何の従業員情報がありません。
ソリューション:左の合流
EMP電子SELECT * FROM e.mgr = m.empno上のempメートルに参加左;
なぜ推奨参加左、右の参加、インナーはONに参加?
- まず、外部接続の点で OARACLE特異的(+)書き込みは、Oracleのために、一般的ではありません。
- 左、上の参加右側に参加し、内部には、デバッグ、SQLに簡単に、より明確な構造に参加します。
- (一次および二次テーブル+)、および左に参加し、右側のジョイン、内部ジョインには、それらの間に明確な区別。