1. 순수 관계연산자
SELECT
릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만든다.
릴레이션의 행에 해당하는 튜플을 구하는 것으로, 수평 연산이라고도 한다.
SELECT 연산의 기호는 그리스 문자 시그마(σ)이다.
표기 형식 : σ(조건)(R)
PROJECT
주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만든다. 단, 연산 결과에 중복이 발생하면 중복이 제거된다.
릴레이션에서 열에 해당하는 속성을 추출하는 것으로, 수직 연산이라고도 한다.
PROJECT 연산의 기호는 그리스 문자 파이(π)이다.
표기 형식 : π(속성 리스트)(R)
JOIN
공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만든다.
JOIN 연산의 결과로 만들어진 릴레이션의 차수는 조인된 두 릴레이션의 차수를 합한 것과 같다.
JOIN 연산의 결과는 CARTESIAN PRODUCT 연산을 수행한 다음 SELECT 연산을 수행한 것과 같다.
JOIN 연산의 기호는 ▷◁ 이다.
표기 형식 : R▷◁(JOIN 조건)S
DIVISION
두 릴레이션 R(X)과 S(Y)에 대해 Y⊆X, X-Y=Z라고 하면, R(X)와 R(Z,Y)는 동일한 표현이다. 이때, 릴레이션 R(Z,Y)에 대한 S(Y)의 DIVISION 연산은 S(Y)의 모든 튜플에 연관되어 있는 R(Z)의 튜플을 선택하는 것이다.
표기 형식 : R[속성r ÷ 속성s]S
2. 오라클 outer join
오라클만의 아우터조인을 할때 반대편 테이블의 조건에 (+)를 붙여준다.
만약 left outer join이면 a = b(+)
right outer join이면 a(+) = b
반대로 이해하고 있엇다.
이것을 ansi 구문으로 바꾸려면
inner 쪽 테이블에 조건절ㄹ을 on절에 위치시켜야한다.
3. Exists / not Exists
exist는 in not exist는 not in으로 이해하면 쉽다.
exist가 존재여부만 확인하고 끝나기 때문에 효율적이라고 한다.
또한
not in은 null도 포함하지만 not exists는 null은 제외한다.
4. EXCEPT
오라클에서는 MINUS가 왼-오이고 EXCEPT는 오-왼 차집합이다.
그런데 MSSQL에서는 EXCEPT가 MINUS이고 차집합이다. 이 차이를 알아두자.
5. 오라클 계층혀질의
START WITH는 계층구조의 시작점을 지정하는ㄴ구문 즉 루트 데이터를 지정
ORDER SIBLINGS BY는 형제노드(동일 LEVEL)사이에서 정렬을 수행
순방향전개랑 부모 노드로부터 자식 노드방향으로 전개하는것
루트노드의 LEVEL은 1이다.
6. CONNECT BY
WHERE절과는 다르게 START WITH절에서 필터링을 시작한다. 그래서 루트노드가 CONNECT BY밑에 잇는 조건에 맞지않더라고 나와야한다.
PRIOR키워드는 순방향전개이고 SELECT WHERE 절에도 사용할 수잇다.
'개념정리 > SQLD' 카테고리의 다른 글
| SQLD 문제풀이 3 - 2 (0) | 2023.11.06 |
|---|---|
| SQLD 문제풀이 5 (1) | 2023.11.04 |
| SQLD 문제풀이 3 (0) | 2023.11.02 |
| SQLD 문제풀이 2 (0) | 2023.11.01 |
| SQLD 문제풀이 (1) | 2023.10.30 |