sqld 개념 요약 정리4

sun·2024년 7월 26일
0

SQLD

목록 보기
4/7

제 4장. sql 활용

1. 조인

조인의 개념

  • 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것
  • 최소로 필요한 조인 조건의 개수 = 조인되는 테이블의 수 - 1
    ex) 조인되는 테이블의 수가 4개라면, 최소로 필요한 조인 조건의 개수는 3개이다.

조인의 종류

  • INNER JOIN
    - JOIN 조건에서 동일한 값이 있는 행만 반환한다.
  • OUTER JOIN
    - JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용할 수 있다.
    1- LEFT OUTER JOIN
    2- RIGHT OUTER JOIN
    3- FULL OUTER JOIN
  • NATURAL JOIN
    - 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들 중에서 원하는 컬럼에 대해서만 선택적으로 EQUI JOIN을 할 수 있다.
  • ON 조건절
    - 컬럼 명이 다르더라도 JOIN 조건을 사용할 수 있다.
  • CROSS JOIN
    - JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합

    연산자

    일반 집합 연산자와 SQL

    • UNION문 : UNION (합집합 개념)
    • UNIONALL : 중복된 항목도 모두 조회
    • INTERSECTION문 : INTERSECT(교집합 개념)
    • DIFFERENCE문 : EXCEPT ( ORACLE에서는 MINUS) (차집합 개념)
    • PRODUCT문 : CROSS JOIN
  • UNION은 공통 교집함의 중복을 제거함. 또한 정렬 작업을 수행하여 시스템에 부하를 준다.
  • UNION ALL은 공통 교집합을 중복해서 보여준다.

순수 관계 연산자와 SQL

  • SELECT 연산 : WHERE절로 구현
  • PRODUCT 연산 : SELECT 절로 구현
  • JOIN : 다양한 JOIN 구현
  • DIVIDE : 사용되지 않음

3. 계층 형 질의

  • 계층 형 질의를 사용하여 계층 형 데이터를 조회할 수 있다.
  • 계층 형 데이터는 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다.
  • START WITH : 계층 구조 관계의 시작 위치를 지정하는 구문.( + 루트 노드의 LEVEL 값은 1부터)
  • CONNECT BY [PRIOR] A AND B
    -PRIOR 자식 = 부모 : 순방향 전개
    -PRIOR 부모 = 자식 : 역방향 전개
  • ORDER SIBLINGS 컬럼 : 형제 노드(동일 LEVEL)사이에서 정렬을 수행

4. 서브쿼리

서브쿼리 개념

  • 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 지칭한다.
  • 서브쿼리는 메인쿼리의 컬럼을 사용할 수 있지만, 메인쿼리는 서브쿼리의 컬럼을 사용할 수 없다.

서브쿼리 사용 시 유의점

  • 괄호를 감싸서 사용해야 한다.
  • 단일행 또는 복수행 비교 연산자와 함께 사용가능
  • 단일행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하다.
  • 서브쿼리에서는 ORDER BY 를 사용하지 못한다.
  • ORDER BY는 메인 쿼리의 마지막 문장에 위치해야 한다.

동작 방식에 따른 서브쿼리

  • 비 연관 서브쿼리 :
    서브쿼리가 메인 뭐리의 컬럼을 가지고 있지 않은 형태
  • 연관 서브쿼리 :
    서브 쿼리가 메인 쿼리의 값을 가지고 있는 형태

반환 형태의 따른 서브 쿼리

  • 단일 행 서브쿼리
  • 다중 행 서브쿼리
  • 다중 컬럼 서브쿼리
    - 다중 컬럼 서브쿼리는 컬럼 수와 컬럼 순서가 동일해야 한다.

5. 뷰 사용의 장점

  • 독립성
  • 편리성
  • 보안성

6. 그룹 함수

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

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

    7. 윈도우 함수

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

  • 중첩하여 호출될 수 없다.

    8. 절차형 SQL

    절차형 SQL 개념

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

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

  • 오라클 기준으로 절차형 모듈을 PL/SQL 이라고 부른다.

    PL/SQL Block 구조

  • Block 구조로 되어있으며, 각 기능별로 모듈화가 가능하다.

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

    프로시저와 트리거

    1- 프로시저

  • CREATE PROCEDURE 문법 사용

  • EXECUTE/EXEC 명령어로 실행

  • 내부에서 COMMIT, ROLLBACK 실행가능

    2- 트리거

  • CREATE TRIGGER 문법 사용

  • 생성 후 자동으로 실행

  • 내부에서 COMMIT, ROLLBACK 실행 불가능

    참고 :
    https://brunch.co.kr/@4ec2ea79b44a440/159

0개의 댓글