728x90
반응형
표준 조인
- 일반 집합 연산자
- UNION: 합집합, 중복 제거
- INTERSECT: 교집합
- EXCEPT/MINUS: 차집합(DIFFERENCE)
- CROSS JOIN: 곱집합(PRODUCT), JOIN조건이없는 경우 생길 수 있는 모든 조합
- 순수 관계 연산자
- SELECT: WHERE절로 구현
- PROJECT: SELECT절로 구현
- NATURAL JOIN: 다양한 JOIN
- DEVIDE: 사용X
- FROM절 JOIN
- INNER JOIN: 내부 조인, 동일한 값이 있는 행만 반환
- JOIN 조건을 USING절이나 ON절에서 사용
- NATURAL JOIN: 등가조인 수행
- USING절이나 ON절, WHERE절에서 조건 정의 가능
- CROSS JOIN: 생길 수 있는 모든 데이터의 조합
- OUTER JOIN: 동일한 값이 없는 행도 반환 가능
- LEFT OUTER JOIN: 좌측 기준
- RIGHT OUTER JOIN: 우측 기준
- FULL OUTER JOIN: 좌/우측 모든 데이터를 읽어 조인 (중복 삭제)
- INNER JOIN: 내부 조인, 동일한 값이 있는 행만 반환
집합 연산자
- 조인을 사용하지 않고 연관된 데이터 조회
- 여러 질의 결과를 하나로 결합하는 방식
- UNION: 합집합, 중복 행 하나로
- UNION ALL: 합집합, 중복 표현
- INTERSECT: 교집합 → EXISTS, IN으로 변경 가능
- EXCEPT: 차집합 → NOT EXISTS, NOT IN으로 변경 가능
계층형 질의
- 계층적으로 상위, 하위 데이터가 포함된 데이터
- ORACLE
- START WITH 절: 시작 위치 지정
- CONNECT BY 절: 조건
- PRIOR: CONNECT BY 절에 사용, 현재 읽은 칼럼 지정 부모=자식: 역방향 전개
- 가상 컬럼
- LEVEL: 루트 데이터는 1, 하위 데이터는 2 (1씩 증가)
- CONNET_BY_ISLEAF: 리프 데이터면 1, 아니면 0
- CONNECT_BY_ISCYCLE: 조상으로 존재하면 1, 아니면 0
- 함수
- SYS_CONNECT_BY_PATH: 경로 표시
- CONNECT_BY_ROOT: 루트 데이터 표시
셀프 조인
- 동일 테이블 사이의 조인
- 반드시 별칭 사용
서브쿼리
- 동작 방식 분류
- 비연관 서브쿼리: 메인쿼리 컬럼을 가지고 있지 않은 형태
- 연관 서브쿼리: 메인쿼리 컬럼을 가지고 있는 형태
- 반환 형태 분류
- 단일행 서브쿼리: 결과가 항상 1건 이하
- 다중행 서브쿼리: 결과가 여러 건
- 다중컬럼 서브쿼리: 여러 컬럼 반환
- SELECT 절: 스칼라 서브쿼리
- 한 컬럼 반환
- FROM 절: 인라인 뷰, ORDER BY 사용 가능
- HAVING 절: 그룹핑된 결과에 부가적인 조건 추가
- UPDATE문의 SET절
- INSERT문의 VALUES절
뷰
- 가상 테이블
- 장점
- 독립성: 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 됨
- 편리성: 해당 SQL을 자주 사용할 때 뷰를 이용하면 편리
- 보안성: 해당 컬럼을 제외하고 생성해 사용자에게 정보를 감출 수 있음
그룹 함수
- AGGREGATE FUNCTION: 집계 함수
- GROUP FUNCTION: 그룹 함수
- ROLLUP: 소그룹 간 소계 계산
- CUBE: GROUP BY 항목 간 다차원적인 소계 계산
- GROUPING SETS: 특정 항목에 대한 소계 계산
- WINDOW FUNCTION: 분석 함수/순위 함수
- 순위 관련
- RANK: 동일값 동일 순위
- DENSE_RANK: 동일 순위를 하나로 취급
- ROW_NUMBER: 동일값이라도 고유한 순위
- 순서 관련
- FIRST_VALUE: 가장 먼저 나온 값
- LAST_VALUE: 가장 나중에 나온 값
- LAG: 이전 몇 번째 행의 값
- LEAD: 이후 몇 번째 행의 값
- 비율 관련
- CUME_DIST: 현재 행보다 작거나 같은 건수에 대한 누적 백분율
- PERCENT_RANK: 제일 먼저 나온 것을 0, 제일 늦게 나온 것을 1, 행의 순서별 백분율
- NTILE: 전체 건수를 argument값으로 n등분한 결과
- RATIO_TO_REPORT: SUM에 대한 행별 칼럼 값의 백분율을 소수점으로 구함
- ARGUMENTS: 함수에 따라 0~n개의 인수 지정
- PARTITION BY: 전체 집합을 소그룹으로 분류
- WINDOWING절: 함수의 대상이 되는 행 기준의 범위를 강력하게 지정
- 순위 관련
PL/SQL
- Block 내에 DML, QUERY, 절차형 언어(IF, LOOP) 등 사용
DECLARE
# 선언부(변수, 상수)
BEGIN
# 실행부
(EXCEPTION)
# 에러처리부
END
- PROCEDURE: EXECUTE 명령어로 실행, 커밋/롤백 가능
- TRIGGER: DML문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램
- USER DEFINED FUNCTION: 명령문의 집합, 반환값이 있음
728x90
반응형
'Note > Certificate' 카테고리의 다른 글
[SQLD 시험] 제41회 SQL 개발자(SQLD) 독학 후기 (0) | 2021.06.26 |
---|---|
[SQLD] SQLD 자격검정 시험 핵심 요약 (feat. 노랭이책) (0) | 2021.06.21 |
[SQLD] 2과목 요약 정리: 2-1 SQL 기본 (0) | 2021.06.21 |
[SQLD] 1과목 요약 정리: 1-2 데이터 모델과 성능 (0) | 2021.06.21 |
[SQLD] 1과목 요약 정리: 1-1 데이터 모델링의 이해 (0) | 2021.06.21 |
Uploaded by Notion2Tistory v1.1.0