[SQLD] 2과목 요약 정리: 2-2 SQL 활용
Note/Certificate

[SQLD] 2과목 요약 정리: 2-2 SQL 활용

728x90
반응형

 

표준 조인

  • 일반 집합 연산자
    1. UNION: 합집합, 중복 제거
    1. INTERSECT: 교집합
    1. EXCEPT/MINUS: 차집합(DIFFERENCE)
    1. CROSS JOIN: 곱집합(PRODUCT), JOIN조건이없는 경우 생길 수 있는 모든 조합
  • 순수 관계 연산자
    1. SELECT: WHERE절로 구현
    1. PROJECT: SELECT절로 구현
    1. NATURAL JOIN: 다양한 JOIN
    1. DEVIDE: 사용X
  • FROM절 JOIN
    1. INNER JOIN: 내부 조인, 동일한 값이 있는 행만 반환
      • JOIN 조건을 USING절이나 ON절에서 사용
    1. NATURAL JOIN: 등가조인 수행
      • USING절이나 ON절, WHERE절에서 조건 정의 가능
    1. CROSS JOIN: 생길 수 있는 모든 데이터의 조합
    1. OUTER JOIN: 동일한 값이 없는 행도 반환 가능
      • LEFT OUTER JOIN: 좌측 기준
      • RIGHT OUTER JOIN: 우측 기준
      • FULL OUTER JOIN: 좌/우측 모든 데이터를 읽어 조인 (중복 삭제)
    💡
    USING 조건절: 같은 이름을 가진 컬럼
    ON 조건절: 컬럼명이 달라도 사용 가능

집합 연산자

  • 조인을 사용하지 않고 연관된 데이터 조회
  • 여러 질의 결과를 하나로 결합하는 방식
  • 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. 비연관 서브쿼리: 메인쿼리 컬럼을 가지고 있지 않은 형태
    1. 연관 서브쿼리: 메인쿼리 컬럼을 가지고 있는 형태
  • 반환 형태 분류
    1. 단일행 서브쿼리: 결과가 항상 1건 이하
    1. 다중행 서브쿼리: 결과가 여러 건
    1. 다중컬럼 서브쿼리: 여러 컬럼 반환
  • SELECT 절: 스칼라 서브쿼리
    • 한 컬럼 반환
  • FROM 절: 인라인 뷰, ORDER BY 사용 가능
  • HAVING 절: 그룹핑된 결과에 부가적인 조건 추가
  • UPDATE문의 SET절
  • INSERT문의 VALUES절

  • 가상 테이블
  • 장점
    1. 독립성: 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 됨
    1. 편리성: 해당 SQL을 자주 사용할 때 뷰를 이용하면 편리
    1. 보안성: 해당 컬럼을 제외하고 생성해 사용자에게 정보를 감출 수 있음

그룹 함수

  • AGGREGATE FUNCTION: 집계 함수
  • GROUP FUNCTION: 그룹 함수
    1. ROLLUP: 소그룹 간 소계 계산
    1. CUBE: GROUP BY 항목 간 다차원적인 소계 계산
    1. GROUPING SETS: 특정 항목에 대한 소계 계산
  • WINDOW FUNCTION: 분석 함수/순위 함수
    • 순위 관련
      1. RANK: 동일값 동일 순위
      1. DENSE_RANK: 동일 순위를 하나로 취급
      1. ROW_NUMBER: 동일값이라도 고유한 순위
    • 순서 관련
      1. FIRST_VALUE: 가장 먼저 나온 값
      1. LAST_VALUE: 가장 나중에 나온 값
      1. LAG: 이전 몇 번째 행의 값
      1. LEAD: 이후 몇 번째 행의 값
    • 비율 관련
      1. CUME_DIST: 현재 행보다 작거나 같은 건수에 대한 누적 백분율
      1. PERCENT_RANK: 제일 먼저 나온 것을 0, 제일 늦게 나온 것을 1, 행의 순서별 백분율
      1. NTILE: 전체 건수를 argument값으로 n등분한 결과
      1. 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
반응형