Eggs Sunny Side Up
본문 바로가기
Computer Engineering/DB_Oracle

복습용문제_230303

by guswn100059 2023. 3. 3.
/* FROM 조인 , ANSI 조인 복습 */ 

/* 
1. 직원 테이블과 직원연락처 테이블을 [직원ID] 로 조인하여 아래와 같은 결과를 출력하세요. 
직원ID    이름    연봉       휴대폰  (이건 AS 로 이름 바꾼것) 
A0001	김철수	2800	010-1231-1234
A0002	강홍수	3000	010-2544-6342
A0003	이현정	2600	010-7766-5231
A0004	김선미	4500	010-4433-5522
A0005	문현철	5000	010-9988-7273
A0006	송대주	7500	010-8373-5511
A0007	메이슨	6200	010-2323-1133
A0008	송진아	7500	010-8877-0087
*/
SELECT * FROM 직원;
SELECT * FROM 직원연락처;

SELECT A.직원ID
     , A.이름
     , A.연봉
     , B.연락처 AS 휴대폰
  FROM 직원 A INNER JOIN 직원연락처 B 
    ON (A.직원ID = B.직원ID)
 WHERE B.구분코드 = '휴대폰';
 
SELECT A.직원ID
     , A.이름
     , A.연봉
     , B.연락처 AS 휴대폰
  FROM 직원 A
     , 직원연락처 B 
 WHERE A.직원ID = B.직원ID
   AND B.구분코드 = '휴대폰';

 

/*
2. 직원 중에서 연락처 정보가 없는 직원들의 정보만 출력해주세요. 

<출력 결과> 
직원ID   이름    나이  연봉 
A0010	김홍민	52	9300
A0009	이서연	50	9000
*/ 
SELECT A.직원ID
     , A.이름
     , A.나이
     , A.연봉
  FROM 직원 A LEFT OUTER JOIN 직원연락처 B
    ON (A.직원ID = B.직원ID)
 WHERE B.연락처 IS NULL;
 
SELECT A.직원ID
     , A.이름
     , A.나이
     , A.연봉
  FROM 직원 A
     , 직원연락처 B
 WHERE A.직원ID = B.직원ID(+)
   AND B.연락처 IS NULL;
--연락처를 등록하지 않은 고객들
--직원테이블에는 있는데, 직원연락처 테이블에는 없던 고객


/*3. 아래 쿼리를 ANSI 문법으로 변경하세요.
SELECT A.직원ID , A.이름 , A.나이 , A.연봉 , B.연락처
  FROM 직원 A
     , 직원연락처 B 
 WHERE A.직원ID = B.직원ID(+)
   AND A.직원ID IN ('A0005' , 'A0006' , 'A0007' ) ; 
*/
SELECT A.직원ID
     , A.이름
     , A.나이
     , A.연봉
     , B.연락처
  FROM 직원 A LEFT OUTER JOIN 직원연락처 B
    ON (A.직원ID = B.직원ID)
 WHERE A.직원ID IN ('A0005', 'A0006', 'A0007');






------------------------------------------------------



-- 1번 답 
SELECT A.직원ID , A.이름 , A.연봉 , B.연락처 AS 휴대폰
  FROM 직원 A  
     , 직원연락처 B 
 WHERE A.직원ID = B.직원ID 
   AND B.구분코드 = '휴대폰';


--2번 답 
SELECT A.직원ID , A.이름 , A.나이 , A.연봉  
  FROM 직원 A
     , 직원연락처 B 
 WHERE A.직원ID = B.직원ID(+)
   AND B.직원ID IS NULL ;


--3번 답 
SELECT A.직원ID , A.이름 , A.나이 , A.연봉 , B.연락처
  FROM 직원 A LEFT OUTER JOIN 직원연락처 B 
    ON ( A.직원ID = B.직원ID ) 
 WHERE A.직원ID IN ('A0005' , 'A0006' , 'A0007' ) ;

'Computer Engineering > DB_Oracle' 카테고리의 다른 글

HAVING  (0) 2023.03.03
GROUP BY  (0) 2023.03.03
ANSI문법  (0) 2023.03.02
FROM_조인(join)  (0) 2023.03.02
복습용문제_20230302  (0) 2023.03.02

댓글