マルチテーブルは、クエリの演習に参加します
必要なテーブルを作成します。
losal INT、 hisalのINT ); -賃金スケール情報をインポート - (1,700,1200)。 - (2,1201,1400)。 - (3,1401,2000)。 - (4,2001,3000)。 - (5,3001,9999)。 SALGRADE値(1,700,1200)。INSERT INTO。 SALGRADE値(2,1201,1400)。INSERT INTO。 SALGRADE値(3,1401,2000)。INSERT INTO。 SALGRADE値(4,2001,3000)。INSERT INTO。 SALGRADE値(5,3001,9999)。INSERT INTO。 SALGRADE SELECT * FROM。
- 各部門のマネージャーの1.クエリの詳細
-様々な管理職のクエリ1.詳細 -方法:直積 SELECT ENAME、EMPNO、仕事、SAL EMP1から、部門 emp1.deptno = DEPT.DEPTNOとENAME = '管理'; -方法2 :クロスコネクト SELECT ENAME、EMPNO、ジョブ、SALを ; =クロス= ON emp1.deptnoとDEPT.DEPTNOのENAME EMP1部門に参加'マネージャー'から の接続: -方法3 SELECT ENAME、EMPNO、仕事、SAL 参加内側EMP1から; emp1.deptno = DEPT.DEPTNOおよびdept ENAME = 'Managerの' ON 各従業員のための2.クエリジョブ番号、名前、タイトル、賃金(SAL + COMM)と賃金のスケールがなければならない- EMPNOを選択し、ENAME、仕事、 COMM + SAL、グレード EMP1から、SALGRADE SAL + Losalとhisal BETWEEN COMMは、 #接続左 選択EMPNO、ENAME、仕事、SAL + COMMを、グレード EMP1からはSAL +にSALGRADEに参加左 losalとhisal間COMM。 - 3.クエリ(接続から:同じテーブルの複数のテーブルとみなさ別名、)すべての管理者や自分の名前従属従業員名を SELECT e2.name、e1.name MGR ON E1インナーe2のASとして参加EMP1 EMP1からe2.empno =; - 4.クエリの数と様々な部門の従業員の平均賃金:部門名、従業員の数と平均賃金 SELECT AVG(SAL)、COUNT(EMPNO)は、DNAME DEPTからはfeptno = EMP1、DEPT ON EMP1に参加を残しました。 DEPTNO DEPT.DEPTNOによってグループ; -各領域の従業員のサービスの5問い合わせ平均長 選択LOC、(DATEDIFF(NOW( )、HIREDATE)/ 365) サービスの平均長 DEPTからはDEPT.DEPTNO = emp1.deptno ON参加EMP1を左に して、グループLOC;
サブクエリ
-スカラクエリ: -クエリf_price情報は、果実の平均価格よりも大きい HAVING f_price> AVG(f_price)からSELECT *フルーツ; -行サブクエリ -クエリと同じ名前の20以上の果物をf_priceと同じ顧客が購入していますフルーツ情報 #1、顧客が購入している20以上のうち、最初のクエリの果物の価格 SELECT F_NAMEを、s_name 果物から WHERE f_price> 20; #2、およびフルーツと同じ情報へのクエリの計算の最初のステップ SELECT F_NAME から果物 でWHERE(F_NAME、s_name) (SELECT F_NAME、s_name 果物から WHERE f_price> 20); -列サブクエリ: -クエリがf_price 10件の未満のお客様は、フルーツ情報購入買った #1は、最初のクエリは、購入価格よりも少ないです顧客果実10 S_NAMEを選択 果実から f_price <10 ; S_NAMEによってグループ または 重複を除去#distinct別個s_nameを選択 果実から 10 <WHERE f_price; #2、クエリ果物を購入し、これらの顧客 SELECT * フルーツから WHERE(中s_name SELECT DISTINCT s_name 果実から WHERE f_price <10); - 10から20の間のいずれかのクエリf_priceのf_priceの果実よりも大きいです情報 #1は、どのような任意のものとどのような時に#照会は何10-20間の果物の価格をチェックアウト を選択しf_price 果物から 、10と20の間f_price WHERE フルーツ情報#2は、これらの果物の価格よりも大きいを 選択します* 果物から 任意の(f_price WHERE SELECT f_price 果物から 10と20の間f_price WHERE ); - 10〜20より、すべての大きいの間のすべてのf_priceフルーツクエリf_price情報より大きいすべてで 1位、最初の10〜20倍の価格をチェックします果物の価格は 10と20の間f_price WHEREからSELECT *フルーツ; #2、最大クエリよりも大きな額面上 SELECT * 果実から 、f_price>すべて(10と20との間f_price果実からf_price選択) サブクエリが存在する構造の復帰(真、偽)議論の余地が存在する後- 20より大きいか否かを#クエリを、ありますすべてのクエリ、またはのようなクエリ SELECT * 果実から WHEREは(WHERE f_price> 30からSELECT *フルーツ)が存在する; #注;実行30より大きい値は、さもなければ存在する場合、すべてのクエリの出力が空 -テーブルサブクエリ -クエリを買っ3つの果物の顧客の20の未満の果物f_price顧客が購入した SELECT S_NAME、COUNT(F_NAME)の 果実から でS_NAME(は ditinct S_NAMEを選択 果実から f_price <20 ) S_NAMEによって当社グループは 。; COUNT(F_NAME)=を備えた3 - -サブクエリの行使 - 1.クエリの賃金全従業員の従業員情報の平均給与よりも高い 第1位、全従業員の平均賃金を問い合わせます 、すべての従業員の平均賃金を# AVG EMP1からSELECT(SAL); SELECT * EMP1から WHERE SAL>(EMP1からSELECT AVG(SAL)); - 2率いる従業員とのクエリと情報部門とスミス SELECT DEPTNO、MGR EMP1から WHERE ENAME =「スミス'; SELECT * EMP1から WHERE(DEPTNO、MGR)= ( DEPTNO、MGRを選択 EMP1から WHERE ENAME ='スミス「); -すべての上位管理のクエリ3.詳細 EMP1は異なるMGRを選択します。 SELECT * EMP1から ; WHERE(SELECT DISTINCT EMP1からMGR)でEMPNO ジョブ情報を持つ従業員の平均賃金より4.給与大きい- AVG(SAL)の平均賃金を選択し、ジョブによってジョブEMP1グループから、 SELECT * EMP1から参加し、左(AVG(SAL)を選択平均給与、ジョブによってEMP1基)からジョブ emp1.job = e.jobにEとして WHERE emp1.sal> E平均賃金;. -上位管理のクエリ位置 -第四従業員の名前と給与6.クエリ賃金スケール - 7.各部門の従業員情報の最高給与が MAX(SAL)まで、DEPTNOによってEMP1グループからDEPTNOを選択し、 SELECT *が EMP1から参加(SELECT最大を残しました(SAL)まで、DEPTNOによってEMP1グループからDEPTNO)A emp1.deptno = a.deptno ON =最高emp1.sal; - 8賃金スケール第四の従業員名と給与に 選択ENAME、SAL、グレード SALGRADE、からEMP1 ; WHERE Losalとhisalとグレード= BETWEEN SAL 4 のSELECT ENAME、SAL EMP1から、(。SALGRADEからグレード= hisal Losal SELECT、4)A SAL Losalとhisal BETWEEN。