[정처기] 메타코드M 3-2-2강 (데이터 베이스 구축: SQL 활용 )

정기홍·2024년 12월 6일

정보처리기사

목록 보기
12/28

시작하면서

해당 글은 메타 코드 M에서 지원하는 정처기 필기 장학생에 합격하여 글을 작성하게 되었습니다.

메타 코드 해당 강의 보러 가기

참고 사항

  • 플랫폼 => 이 뜻은 참고할 주제라는 뜻입니다.
  • 이렇게 형관펜이 되어 있는 곳은 시험에 나오거나, 강조하고 싶은 부분이 있을 때 표시할 것입니다.

3-2-2. 고급 SQL 작성

뷰(View)

  • 실제 데이터를 저장하지 않고, 쿼리 결과를 동적으로 생성하는 가상의 논리적 테이블

뷰의 특징

  • 데이터 접근제어를 통해 데이터의 논리적 독립성과 보안을 제공
  • 사용자의 요구에 맞게 데이터를 제공할 수 있어 사용자 데이터 관리 용이
  • 뷰 위에 또 다른 뷰를 정의할 수 있음.
  • 삽입(insert), 갱신(Update), 삭제(Delete) 연산 및 인덱스 생성에 제약사항이 따름.
  • 기본 테이블처럼 Create 문을 사용해 정의하고 drop 문을 통해 제거

인덱스(index)

  • 문헌의 색인, 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조

인덱스의 특징

  • 데이터 검색 시 처리속도 향상에 도움
  • 테이블 삭제 시 인덱스도 같이 삭제
  • 기본 테이블처럼 Create 문을 사용해 정의하고 Drop문을 통해 제거

집합 연산

  • 두 개 이상의 쿼리 결과를 결합하거나 비교하는 연산
  • 집합 연산 수행 시에는 각 쿼리 결과의 열 개수와 데이터 유형이 일치해야 함.

조인(join)

  • 두 개 이상의 테이블을 연결하여 데이터를 결합하는 방법
  • 여러 테이블에 분리된 데이터를 함께 조회할 때 사용
  • 관계형 데이터베이스의 핵심 기능으로, 논리적 조인과 물리적 조인으로 나뉨

내부 조인(Inner join)

  • 두 테이블 간에 공통된 값이 있는 행만 결합하여 반환
  • 일치하는 데이터만 조회되므로 양쪽 테이블 모두에 있는 값만 결과에 포함됨.

외부 조인(Outer join)

  • Left Outer Join : 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 데이터를 함께 반환
  • Right Outer Join : 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 데이터를 함께 반환.
  • Full Outer Join : 두 테이블의 모든 데이터를 반환
  • 매칭 되지 않는 행은 NULL이 반환됨.

교차 조인(Cross Join)

  • 별도의 조인 조건 없이, 두 테이블의 모든 행을 다른 테이블의 모든 행과 결합

셀프 조인(Self Join)

  • 한 테이블을 스스로와 조인하는 방식으로, 같은 테이블 내에서 데이터를 조합할 때 사용.

서브 쿼리(Subquery)

  • 쿼리 안에 또다른 쿼리가 포함된 구조
  • 복잡한 쿼리에서 일부 데이터를 먼저 조회한 후, 그 데이터를 바탕으로 메인 쿼리를 실행할 때 사용

Where 절에 조건으로 활용되는 서브 쿼리

  • IN : 서브쿼리 결과 목록에 특정 값이 있는지 확인

    SELECT name
    FROM customers
    WHERE customer_id IN (SELECT customer_id FROM orders WHERE order_date > '2024-01-01)
  • ALL : 서브쿼리의 모든 결과에 대해 주어진 조건을 만족하는지 확인

    SELECT name
    FROM Products
    WHERE price > ALL (SELECT Price FROM Products WHERE category = ‘Electronics’ );
  • ANY : 서브쿼리 결과 중 하나라도 조건을 만족하는지 확인

    SELECT name
    FROM Products
    WHERE price < ANY (SELECT Price FROM Products WHERE category = ‘Electronics’ );
  • EXISTS : 서브쿼리 결과가 존재하는지 여부만 확인

    SELECT column1, column2
    from table_name
    WHERE column_name IN | ALL | ANY | EXISTS (subquery);

From 절에 테이블로 활용되는 서브 쿼리

  • 서브 쿼리의 결과를 임시 테이블처럼 사용


메타코드 M 해당 강의 보러가기

profile
하나를 알고 그걸로 모든걸 관통한다.

0개의 댓글