- UNIQUE제약조건은 NULL을 가질 수 있다.
- ORACLE에서는 ORDER BY 정렬 시 NULL을 가장 큰 값으로 취급한다.
- ORDER BY 절은 “컬럼마다” 정렬 순서를 따로 준다
- 테이블 명은 숫자로 시작할 수 없으며, -(하이픈)을 사용할 수 없다.
- NTILE함수 사용시 나머지는 앞 그룹부터 1씩 추가된다.
- '=' 연산은 NULL과 비교하면 항상 거짓을 반환한다.
- LAG 함수는 현재 행을 기준으로 이전 행의 값을 가져온다.
- 반대로 LEAD 함수는 현재 행을 기준으로 다음 행의 값을 가져온다.
- CUME_DIST는 누적백분율을 구하는 함수이다.
DECODE(A,
B, C, -- A가 B면 → C
D, E, -- A가 D면 → E
F, G, -- A가 F면 → G
H) -- 그 외 → H
- EXISTS: 서브쿼리 결과가 존재하면 TRUE
- NOT EXISTS: 서브쿼리 결과가 없으면 TRUE
EXISTS는 레코드 존재 여부만 확인하기 때문에 SELECT * 대신에 1, 'X', '아무문자열' 처럼 상수를 써도 상관없음
| 분류 | 위치 | 특징/용도 |
|---|---|---|
| Inline View / Derived | FROM | 임시 테이블처럼 사용, 별칭 필요 |
| Scalar | SELECT/WHERE/HAVING | 단일 값 반환 (1행1열) |
| Correlated | WHERE/SELECT | 메인쿼리 컬럼 참조, 행별 실행 |
| EXISTS / NOT EXISTS | WHERE | 존재 여부 판단 |
| IN / NOT IN | WHERE | 포함 여부 판단 |
| View | FROM | 재사용 가능, 복잡한 쿼리 간결화 |

