SQL 활용 실습자료 #4 << 내부조인(INNER JOIN), 자연조인(NATURAL JOIN) 익히기>>
SELECT * FROM DEPT INNER JOIN EMP E ON DEPT.DEPTNO = E.DEPTNO; 와 SELECT * FROM EMP E INNER JOIN DEPT ON DEPT.DEPTNO = E.DEPTNO; 와의 차이점은?
1)을 NATURAL JOIN하시오. 1)의 결과와 어떤 차이가 있는가?
SELECT t.team_id, t.region_name, p.player_name FROM team t join player p ON (t.team_id = p.team_id);을 실행하여 보자. 위의 컬럼들을 출력하는데, 연고지가 ‘강원’인 선수들만 검색하시오.
p.321 예제에서 두 SQL의 실행결과는 차이가 있는가? 실행결과를 이용하여 홈팀점수와 어웨이팀 점수의 최대점수를 구하시오.(홈최대접수, 어웨이최대점수 출력)
p.325-328 예제로 left out join, right out join, full out join을 익히시오. p.330 집합연산자
‘전남’에 속한 선수 중에서 포지션이 ‘GK’인 선수들과 ‘서울’에 속한 선수 중에서 몸무게가 65이상인 선수들을 합집합하시오. ( 연고지명, 선수명, 포지션, 몸무게 순으로 (선수명, 포지션)순으로 오름차순으로 출력하시오 ), 가) 합집합 대신에 조건절에 이용한 일반 SQL문으로 변경하여 결과를 비교하시오.
p.339번 예제 4)번에서 미더필더(MF)가 아닌 선수들의 정보를 보고 싶다로 수정요망.
‘전남’에 속한 선수 중에서 포지션이 ‘GK’가 아닌 선수들을 차집합(MINUS)f으로 구하시오. ( 연고지명, 선수명, 포지션, 몸무게 순으로 (선수명, 포지션)순으로 오름차순으로 출력하시오 ), 가) 차집합 대신에 조건절에 이용한 일반 SQL문으로 변경하여 결과를 비교하시오.
‘전남’에 속한 선수 중에서 포지션이 ‘GK’가 아닌 선수들 교집합(intersect)으로 구하시오. ( 연고지명, 선수명, 포지션, 몸무게 순으로 (선수명, 포지션)순으로 오름차순으로 출력하시오 ), 가) 교집합 대신에 조건절에 이용한 일반 SQL문으로 변경하여 결과를 비교하시오.
포지션이 ‘GK’인 선수들의 평균몸무게(subquery)보다 크거나 같은 선수들을 단일행 서브쿼리로 구하시오. ( 선수명, 포지션, 몸무게 순으로 선수명순으로 내림차순으로 출력하시오 ),
선수들 중에서 ‘정진우’가 소속된 팀정보를 서브쿼리로 구하시오. ( 연고지명, 팀명, 영문팀명 순으로 출력하시오 ), 가) 일반 SQL문으로 변경하여 결과를 비교하시오.