Category/Database

[ORACLE] 3. SQL Developer, 집합 연산자

developer__Y 2023. 11. 28. 16:29

 

Oracle 홈페이지에서 개발자 다운로드 항목에 SQL Developer를 설치후, 이전에 만들어뒀던 scott 계정으로 데이터베이스를 접속한다.

 

접속하면 cmd창에서 불편하게 보았던 다양한 데이터들을 gui화면상에서 편리하게 확인할수있다.

 

< SQL Developer 단축키 모음 >
복사 : Ctrl + Shift + D
한줄 삭제 : Shift + Delete
창닫기 : Ctrl + w
주석 : Ctrl + /
쿼리 실행 : Ctrl + Enter
새창 : Alt + F10

 

 

 

 

집합연산자

- UNION : 합집합, 여러 쿼리문을 합쳐 하나의 결과를 출력한다. 중복으로 포함되는 행은 1개만 나오고, 중복되는 행까지 포함해서 출력하려면 UNION ALL 을 사용하면 된다.

- MINUS : 차집합, 큰 집합에서 작은집합의 쿼리를 뺀 결과를 하나의 테이블로 출력한다.

 

 

=> DEPTNO1 이 101인 행과 DEPTNO2 가 201인 행들이 하나의 테이블로 합쳐져서 출력된다. 

UNION ALL을 사용했기때문에 9411_James Seo가 2번 출력된다.

 

 

- INTERSECT : 교집합, 두개이상의 쿼리문에서 공통된 쿼리들만 하나의 테이블로 만들어 출력한다.

 

 

 

예제) 다음의 3개의 테이블을 이용하여 소속 교수는 있으나, 소속 학생은 없는 학과 번호(DEPTNO1)를 출력하라.

 

1. Professor Table

Professor Table

 

2.Department Table

 

3. Student Table

Student table

= > SELECT DEPTNO FROM department    
INTERSECT
SELECT DEPTNO FROM Professor
MINUS
SELECT DEPTNO1 FROM Student;

 

: department 테이블의 DEPTNO 와 Professor 테이블의 DEPTNO의 교집합 :

전체 학과번호와 담당교수가 있는 학과의 교집합 = 담당 교수가 있는 학과

에서 

Student 테이블의 DEPTNO1 를 뺀 차집합 : 담당교수가 있는 학과 집합에서, 소속된 학과번호를 뺀 결과 

= 담당교수가 있는 학과중 소속된 학생이 없는 학과