Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- level 2
- sklearn
- 데이터 분석
- 카카오
- 튜닝
- 프로그래머스
- Kaggle
- 머신러닝
- Python
- 파이썬
- oracle
- R
- 실습
- Oracel
- 빅분기
- SQL
- python3
- 실기
- pandas
- 알고리즘
- matplotlib
- level 1
- 오라클
- 빅데이터 분석 기사
- Numpy
- seaborn
- 코딩테스트
Archives
- Today
- Total
라일락 꽃이 피는 날
[Oracle] 집합 연산자 본문
728x90
- 서로 다른 테이블의 데이터를 양 옆으로 연결해서 출력하는 것은? 조인 (join)
- 서로 다른 테이블의 데이터를 위아래로 연결해서 출력하는 것은? 집합 연산자
집합 연산자
- union all → 합집합
- union → 합집합 (중복된 데이터를 제거)
- intersect → 교집합
- minus → 차집합
집합 연산자 사용시 주의사항
- 집합 연산자 위쪽에 있는 쿼리문의 컬럼의 개수와 아래쪽에 있는 컬럼의 개수가 서로 동일해야 한다.
(컬럼명도 가급적 동일하게 맞춰줍니다.) - 집합 연산자 위아래 쿼리문의 컬럼들의 데이터 유형도 서로 같아야 한다.
- 집합 연산자 사용 시 order by 절은 맨 아래쪽의 쿼리문에만 사용 가능하다.
예제 1. 부서 번호와 부서 번호 별 토탈 월급을 출력한 것과 토탈 월급만 출력한 것을 연결해서 출력
select deptno, sum(sal)
from emp
group by deptno
union all
select null as deptno, sum(sal)
from emp;
예제 2. 부서 번호, 부서 번호 별 토탈 월급을 출력하는데, 아래쪽에 전체 토탈 월급을 출력
select deptno, sum(sal)
from emp
group by deptno
union
select null as deptno, sum(sal)
from emp;
union 은 union all 과는 다르게 중복된 데이터를 제거하고 정렬도 한다.
※ 21c 에서는 union 에서 데이터 정렬 기능을 제거했다.
예제 3. 사원 테이블과 부서 테이블의 공통된 부서 번호가 무엇인가?
select deptno
from emp
intersect
select deptno
from dept;
예제 4. 부서 테이블에는 존재하는데 사원 테이블에는 없는 부서 번호는 무엇인가?
select deptno
from dept
minus
select deptno
from emp;
728x90
'프로그래밍 > Oracle' 카테고리의 다른 글
[Oracle] 다중 컬럼 서브 쿼리 (0) | 2022.06.02 |
---|---|
[Oracle] 단일행/다중행 서브 쿼리 (0) | 2022.06.02 |
[Oracle] 조인 - ANSI 조인 (0) | 2022.06.01 |
[Oracle] 테이블 정의서 (0) | 2022.06.01 |
[Oracle] 조인 - 오라클 조인 (0) | 2022.06.01 |