TIL - 20260113

juni·2026년 1월 12일

TIL

목록 보기
237/316

0113 SQLD 학습 (10/10): 2과목 - SQL 기본 및 활용 총정리


✅ 1. SQL 기본: 명령어의 분류와 기본 문법

  • SQL은 기능에 따라 DDL, DML, DCL, TCL로 분류됩니다. 이들의 역할과 트랜잭션 관계를 이해하는 것이 기본입니다.
구분이름주요 명령어트랜잭션
DDL데이터 정의어CREATE, ALTER, DROP, TRUNCATE자동 COMMIT
DML데이터 조작어SELECT, INSERT, UPDATE, DELETETCL로 제어
DCL데이터 제어어GRANT, REVOKE자동 COMMIT
TCL트랜잭션 제어어COMMIT, ROLLBACK, SAVEPOINT-
  • SELECT 문의 논리적 실행 순서 (매우 중요):
    FROMWHEREGROUP BYHAVINGSELECTORDER BY

    • WHERE개별 행을, HAVING그룹화된 결과를 필터링합니다.
  • 주요 함수:

    • 단일 행 함수: NVL/ISNULL, COALESCE, CASE
    • 집계 함수: COUNT, SUM, AVG, MAX, MIN (주로 GROUP BY와 함께 사용)
  • 제약조건: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK는 데이터의 무결성을 보장하는 핵심 규칙입니다.


✅ 2. SQL 활용: JOIN과 서브쿼리

  • 관계형 데이터베이스에서 원하는 데이터를 조합하고 추출하기 위한 가장 핵심적인 도구입니다.

➕ JOIN

  • 두 개 이상의 테이블을 공통된 컬럼을 기준으로 연결합니다.
    • INNER JOIN: 두 테이블에 모두 일치하는 데이터만 반환 (교집합).
    • OUTER JOIN: 일치하지 않아도 기준 테이블의 데이터는 모두 반환 (LEFT, RIGHT, FULL).
    • SELF JOIN: 하나의 테이블을 별칭(Alias)을 통해 자기 자신과 조인하여 계층 구조를 표현.

➕ 서브쿼리 (Subquery)

  • SQL 문 내부에 포함된 또 다른 SELECT 문입니다.
    • 스칼라 서브쿼리 (SELECT 절): 단일 값(1행 1열)을 반환.
    • 인라인 뷰 (FROM 절): 결과 집합을 가상의 테이블처럼 사용.
    • 중첩 서브쿼리 (WHERE, HAVING 절): 조건절에서 비교 값으로 사용.

✅ 3. 고급 SQL: 분석과 집계

  • 단순 조회를 넘어, 데이터를 분석하고 통계를 내기 위한 고급 기능들입니다.

➕ 집합 연산자 (Set Operators)

  • SELECT 문의 결과 집합을 합치거나 비교합니다. (컬럼 수/타입 일치 필요)
    • UNION: 중복을 제거한 합집합 (느림).
    • UNION ALL: 중복을 포함한 합집합 (빠름).
    • INTERSECT: 교집합.
    • MINUS / EXCEPT: 차집합.

➕ 윈도우 함수 (Window Functions)

  • GROUP BY와 달리 원본 행을 유지하면서, PARTITION BY로 정의된 그룹(창) 내에서 순위, 누적 합계 등 복잡한 분석 연산을 수행하는 강력한 기능입니다.
    • 순위 함수: RANK(), DENSE_RANK(), ROW_NUMBER()
    • 집계 함수: SUM() OVER (...), AVG() OVER (...)
    • 행 순서 함수: LAG() (이전 행), LEAD() (다음 행)

✅ 4. 트랜잭션과 권한 관리

➕ TCL (트랜잭션 제어어)

  • 트랜잭션: "All or Nothing" 원칙에 따라 데이터의 일관성을 보장하는 논리적인 작업 단위.
  • COMMIT: 모든 변경 사항을 데이터베이스에 영구 저장.
  • ROLLBACK: 모든 변경 사항을 취소하고 이전 상태로 복귀.
  • ACID: 성공적인 트랜잭션이 만족해야 할 4대 특성 (원자성, 일관성, 격리성, 지속성).

➕ DCL (데이터 제어어)

  • 데이터베이스의 보안을 담당합니다.
  • GRANT: 사용자에게 특정 객체에 대한 권한을 부여.
  • REVOKE: 사용자로부터 권한을 회수.

📌 2과목 핵심 요약

  • SQL 쿼리는 논리적 실행 순서에 대한 이해가 가장 중요합니다.
  • 원하는 데이터를 조합하기 위해 JOIN서브쿼리를 자유자재로 활용해야 합니다.
  • 데이터 분석이 필요할 때는 GROUP BY를 넘어, 윈도우 함수를 사용하여 더 정교한 결과를 도출할 수 있습니다.
  • 데이터 변경(DML)은 반드시 트랜잭션(TCL) 단위로 관리되어 데이터의 일관성을 보장해야 합니다.
  • 궁극적으로, SQLD 2과목은 주어진 요구사항에 맞춰 정확하고 효율적인 SQL 문을 작성할 수 있는 능력을 평가합니다.

0개의 댓글