mysqlのマルチテーブル・ジョイン

 マルチテーブルは、クエリの演習に参加します

必要なテーブルを作成します。


    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。

  

おすすめ

転載: www.cnblogs.com/manjianlei/p/11279439.html