SQL 활용 - 집합&계층형

Ye Seo Lee·2021년 9월 16일
1

SQLD

목록 보기
12/12

1. 집합

  • 여러 개의 릴레이션을 사용해서 새로운 릴레이션을 만드는 과정


1. CROSS JOIN (교차조인)

  • 조건 없이 모든 행 단순 결합 (카테시안 곱 발생)
SELECT * FROM emp CROSS JOIN dept;
SELECT * FROM emp, dept;

2. INNER JOIN (내부조인)

  • 교차조인 값에서 열의 값이 일치하는 행만 가져옴
SELECT * FROM emp INNER JOIN dept
ON emp.DEPTNO = dept.DEPTNO;

3. OUTER JOIN (외부조인)

SELECT * FROM emp, dept
WHERE emp.DEPTNO (+)= dept.DEPTNO;

SELECT * FROM emp LEFT/RIGHT/FULL OUTER JOIN dept
ON emp.DEPTNO = dept.DEPTNO;

SELECT * FROM emp LEFT/RIGHT/FULL JOIN dept
ON emp.DEPTNO = dept.DEPTNO;

4. EQUI JOIN (등가교집합)

  • 일치하는 부분만 가져옴
SELECT * FROM emp, dept
WHERE emp.DEPTNO = dept.DEPTNO
AND emp.ENAME LIKE ‘임%’
ORDER BY ENAME;

5. Non-EQUI JOIN (비등가교집합)

  • 일치하지 않는 것 조인
  • 부등호(>, <, >=, <=) 사용

6. INTERSECT (교집합조회)

  • 공통된 값(교집합) 조회
SELECT lname, fname FROM emp_a
INTERSECT
SELECT sung, irum FROM emp_b;

7. UNION (합집합)

  • 칼럼 수/데이터 형식 모두 일치해야 가능

    1) UNION (중복 제거 O > SORT 발생 O)
    2) UNION ALL (중복 제거 X, SORT 발생 X)

SELECT DEPTNO FROM emp
UNION (ALL)
SELECT DEPTNO FROM dept;

8. 차집합

  • 앞엔 있고 뒤엔 없는 것

    1) MINUS (Oracle)
    2) EXCEPT (SQL-Server, PostgreSQL)

SELECT lname, fname FROM emp_a
MINUS (EXCEPT)
SELECT sung, irum FROM emp_b;

2. 계층형 조회

  • 트리 형태의 구조로 질의 실행
  • Root Node로부터 Leaf Node의 질의 실행
SELECT MAX(LEVEL) FROM Limbest.emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr;

1개의 댓글

comment-user-thumbnail
2022년 5월 19일

공부하고 가요!

답글 달기