자기 참조 조인 (self join)
SQL> SELECT 별명1.컬럼1, ... 별명2.컬럼1, ...
2 FROM 테이블 별명1, 테이블 별명2, ...
3 WHERE 조인_조건
4 AND 일반_조건
외부 조인(Outer join)
SQL> SELECT 테이블1.컬럼, ..테이블2.컬럼, ...
2 FROM 테이블1, 테이블2, ...
3 WHERE 조인_조건(+)
4 AND 일반_조건
실습
1. 학생 중에 동명이인을 검색한다.
select a.sname, a.syear
from student a, student b
where a.sno != b.sno AND a.sname = b.sname;
2. 전체 교수 명단과 교수가 담당하는 과목의 이름을 학과 순으로 검색한다.
select DISTINCT b.pname, cname, section
from professor b, course c, score d
where b.pno = c.pno AND c.cno = d.cno ORDER BY b.section;
3. 이번 학기 등록된 모든 과목과 담당 교수를 학점 순으로 검색한다.
select cname, pname, a.st_num
from course a, professor b
where a.pno = b.pno order by a.st_num;
4. 직원 중에 자신의 관리자 보다 급여가 높은 사람의 급여 정보를 관리자 급여 정보와 같이 검색한다.
select a.eno 사번, a.ename 이름, a.mgr 사수번호, a.sal 급여, b.sal 사수급여
from emp a, emp b
where a.mgr = b.eno AND a.sal > b.sal;
5. 교수의 정보와 교수가 담당하는 과목명을 검색한다.
select pname 이름, a.pno 교수번호, cname 과목명
from professor a, course b
where a.pno = b.pno;
6. 직원과 사수의 명단을 검색한다. 단 직원 명단은 모든 직원 명단이 출력되어야 한다.
select a.ename 직원이름, a.eno 사번, a.mgr 사수번호, b.ename 사수이름
from emp a, emp b
where a.mgr = b.eno(+);
7. 화학과 학생 중에 학점이 동일한 학생을 검색한다.
select DISTINCT a.major, a.syear, a.sname, b.sname, a.avr, b.avr
from student a, student b
where a.sno != b.sno AND a.avr = b.avr AND a.major = '화학';
'SQL' 카테고리의 다른 글
SQL 명령어 서브쿼리,중복제거,DML문의 이해 (0) | 2022.11.08 |
---|---|
오라클 사용자 계정 만들기, 데이터베이스 서버 네트워크 연결 (0) | 2022.11.08 |
SQL LIKE, BETWEEN, IN 연산자 (0) | 2022.11.08 |
CentOS 7 리눅스에 oracle 설치를 위한 설정 (1) | 2022.10.31 |
SQL 명령어 정렬 order by, 선택(selection) where (0) | 2022.10.26 |