자기 참조 조인(Self join)
SELECT 별명1.컬럼1, ... 별명2.컬럼1, ...
FROM 테이블 별명1, 테이블 별명2, ...
WHERE 조인_조건
AND 일반_조건;
- 같은 테이블을 조인한다.
- 별명1과 별명2는 같은 테이블이지만 각각 별도의 테이블처럼 이용할 수 있다.
외부 조인
SELECT 컬럼, 컬럼, ...
FROM 테이블1, 테이블2, ...
WHERE 조인_조건(+)
AND 일반_조건
- 조인 조건에 해당하지 않는 데이터까지 출력할 수 있다.
- +는 데이터가 부족한 테이블의 컬럼에 기술한다.
실습
1. 학생 중에 동명이인을 검색한다.
SELECT DISTINCT st1.sno, st1.sname
FROM student st1, student st2
WHERE st1.sname = st2.sname AND st1.sno != st2.sno;
2. 모든 직원의 명단과 이를 관리하는 직원의 명단을 검색한다.
SELECT e1.eno, e1.ename, e1.mgr, e2.eno, e2.ename
FROM emp e1, emp e2
WHERE e1.mgr = e2.eno(+);
3. 직원 중에 자신의 관리자 보다 급여가 높은 사람의 급여 정보를 관리자 급여 정보와 같 이 검색 한다.
SELECT e1.eno, e1.ename, e1.sal, e2.eno, e2.ename, e2.sal
FROM emp e1, emp e2
WHERE e1.mgr = e2.eno AND e1.sal > e2.sal;
4. 전체 교수 명단과 교수가 담당하는 과목의 이름을 학과 순으로 검색한다.
SELECT p.pno, p.pname, p.section, c.cname
FROM professor p, course c
WHERE p.pno = c.pno(+)
ORDER BY p.section;
5. 모든 과목 목록과 각 과목별 담당 교수를 검색한다.
SELECT c.cno, c.cname, p.pno, p.pname
FROM professor p, course c
WHERE p.pno(+) = c.pno;
2024.01.24 - [SQL] - SQL select - 실습1
SQL select - 실습1
실습 테이블 테이블 내용 테이블 내용 emp dept salgrade 사원 부서 급여등급 student professor course score scgrade 학생 교수 과목 기말고사점수 점수등급 테이블 상세 구조 emp(사원) dept(부서) salgrade(급여등
backendmaster.tistory.com
<테이블 정보>
'SQL' 카테고리의 다른 글
SQL select - 실습10 (0) | 2024.01.31 |
---|---|
SQL select - 실습9 (2) | 2024.01.30 |
SQL select - 실습7 (0) | 2024.01.30 |
SQL select - 실습6 (1) | 2024.01.29 |
SQL select - 실습5 (1) | 2024.01.29 |