brunch

You can make anything
by writing

C.S.Lewis

by 브래드 Mar 13. 2023

SQLD 요약정리, 4편

4. SQL 활용

안녕하세요, 브래드입니다.

오늘은 SQLD 요약정리 4편으로 SQL의 다양한 연산자와 서브쿼리 등에 관해 함께 알아보아요.



제 4장. SQL 활용

 (1) 조인

    1-1. 조인의 개념

    - 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것

    - 최소로 필요한 조인 조건의 개수 = 조인되는 테이블의 수 - 1

      EX) 조인되는 테이블의 수가 4개라면, 최소로 필요한 조인 조건의 개수는 3개



    1-2. 조인의 종류

    - INNER JOIN: JOIN 조건에서 동일한 값이 있는 행만 반환함

    - OUTER JOIN: JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용할 수 있음

      1) LEFT OUTER JOIN

      2) RIGHT OUTER JOIN

      3) FULL OUTER JOIN

    - NATURAL JOIN: 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI(=) JOIN을 수행함

    - USING 조건절: 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 선택적으로 EQUI JOIN을 할 수 있음

    - ON 조건절: 칼럼 명이 다르더라도 JOIN 조건을 사용할 수 있음

    - CROSS JOIN: JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합




  (2) 연산자 

    2-1. 일반 집합 연산자와 SQL

        - UNION문: UNION

        - INTERSECTION문: INTERSECT

        - DIFFERENCE문: EXCEPT (ORACLE에서는 MINUS)

        - PRODUCT문: CROSS JOIN

- UNION은 공통 교집합의 중복을 제거함. 또한 정렬 작업을 수행하여 시스템에 부하를 줌
- UNION ALL은 공통 교집합을 중복해서 보여줌



    2-2. 순수 관계 연산자와 SQL

        - SELECT 연산: WHERE 절로 구현

        - PRODUCT 연산: SELECT 절로 구현

        - JOIN: 다양한 JOIN 구현

        - DIVIDE: 사용되지 않음




  (3) 계층 형 질의

    - 계층 형 질의를 사용하여 계층 형 데이터를 조회할 수 있음

    - 계층 형 데이터는 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말함

- START WITH: 계층 구조 관계의 시작 위치를 지정하는 구문. (+ 루트 노드의 LEVEL 값은 1부터)
- CONNECT BY [PRIOR] A AND B
    *PRIOR 자식 = 부모 : 순방향 전개
    *PRIOR 부모 = 자식 : 역방향 전개
- ORDER SIBLINGS BY 칼럼: 형제 노드(동일 LEVEL) 사이에서 정렬을 수행 







  (4) 서브쿼리

    4-1. 서브쿼리 개념

        - 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 지칭함

        - 서브쿼리는 메인쿼리의 칼럼을 사용할 수 있지만, 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음


    4-2. 서브쿼리 사용 시 유의점

        - 괄호를 감싸서 사용해야 함

        - 단일행 또는 복수행 비교 연산자와 함께 사용 가능

        - 단일행 비교 연산자는 서브 쿼리의 결과가 반드시 1건 이하임

        - 서브쿼리에서는 ORDER BY 를 사용하지 못함. ORDER BY는 메인 쿼리의 마지막 문장에 위치해야 함


    4-3. 동작 방식에 따른 서브쿼리

        1) 비 연관 서브쿼리

            : 서브쿼리가 메인 쿼리의 칼럼을 가지고 있지 않은 형태

        2) 연관 서브쿼리

            : 서브 쿼리가 메인 쿼리의 값을 가지고 있는 형태


    4.4 반환 형태에 따른 서브 쿼리

        1) 단일 행 서브쿼리

        2) 다중 행 서브 쿼리

        3) 다중 칼럼 서브 쿼리

           *다중 칼럼 서브 쿼리는 칼럼 수와 칼럼 순서가 동일해야 함




  (5) 뷰 사용의 장점

        - 독립성

        - 편리성

        - 보안성



  (6) 그룹 함수

        - 그룹 함수를 활용하여 특정 집합의 소계, 총계, 총 합계를 구할 수 있음

- ROLLUP: 소 그룹간의 소계를 계산하는 기능. 인자의 순서가 중요함.
- CUBE: 다차원적인 소계를 계산하는 기능. 시스템에 많은 부담을 줌.
- GROUPING SETS: 특정 항목에 대한 소계를 계산하는 기능







  (7) 윈도우 함수

        - 분석함수로 알려져 있으며, 행과 행간의 관계에서 다양한 연산 처리를 할 수 있게 함 

        - 중첩하여 호출될 수 없음



  (8) 절차형 SQL

    8-1. 절차형 SQL 개념

        - 일반적인 개발언어처럼 SQL문도 절차지향적인 프로그램 작성이 가능하도록 절차형 SQL을 제공함

        - 오라클 기준으로 절차형 모듈의 종류는 프로시저, 사용자 정의 함수, 트리거가 존재함

        - 오라클 기준으로 절차형 모듈을 PL/SQL이라고 부름



    8-2. PL / SQL 

        - Block 구조로 되어있으며, 각 기능별로 모듈화가 가능

        - PL/SQL은 오라클에 내장시킬 수 있으므로 어떠한 오라클 서버로도 이식이 가능함



    8-3. PL / SQL BLOCK 구조

        1) DECLARE(선언 부): 필수

        2) BEGIN(실행 부): 필수

        3) EXCEPTION(예외 처리 부): 선택

        4) END: 필수



    8-4. 프로시저와 트리거

1) 프로시저
    - CREATE PROCEDURE 문법 사용
    - EXECUTE/EXEC 명령어로 실행
    - 내부에서 COMMIT, ROLLBACK 실행가능

2) 트리거
    - CREATE TRIGGER 문법 사용
    - 생성 후 자동으로 실행
    - 내부에서 COMMIT, ROLLBACK 실행 불가능





지금까지 SQLD 요약 정리 4편으로 SQL 활용 파트에 관해 함께 공부해보았습니다.

다음 시간에는 마지막 파트인 SQL 최적화 기본원리에 대해 알아보아요.


브래드였습니다. 감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari