Database · 한장정리
[기술사토픽] SQL & 관계 대수 완벽 정리 - 한장정리
DDL·DML·DCL·TCL 구분, 관계 대수 연산, 집계함수·윈도우함수·서브쿼리까지 기술사 빈출 주제를 완벽 정리합니다.
Ⅰ.SQL 명령어 체계
개념: SQL(Structured Query Language)은 관계형 DB를 정의·조작·제어하기 위한 표준 언어입니다.
| 분류 | 명령어 | 설명 |
|---|---|---|
| DDL(정의) | CREATE·ALTER·DROP·TRUNCATE | 테이블·뷰·인덱스 구조 정의 |
| DML(조작) | SELECT·INSERT·UPDATE·DELETE | 데이터 조회·삽입·수정·삭제 |
| DCL(제어) | GRANT·REVOKE | 접근 권한 부여·회수 |
| TCL(트랜잭션) | COMMIT·ROLLBACK·SAVEPOINT | 트랜잭션 제어 |
나. 관계 대수 핵심 연산
| 연산 | 기호 | 설명 |
|---|---|---|
| 선택(Select) | σ | 조건 만족 튜플 추출 (행) |
| 추출(Project) | π | 특정 속성만 추출 (열) |
| 조인(Join) | ⋈ | 공통 속성으로 결합 |
| 합집합 | ∪ | 두 릴레이션 합 |
| 차집합 | − | 한쪽에만 있는 튜플 |
| 카티션곱 | × | 모든 조합 |
시험 포인트
TRUNCATE vs DELETE: TRUNCATE=DDL(롤백 불가·빠름) / DELETE=DML(롤백 가능·느림)
관계 대수는 절차적, SQL은 비절차적(선언형) 언어.
Ⅱ.고급 SQL — 윈도우함수·서브쿼리·조인
가. 윈도우 함수
윈도우 함수는 GROUP BY 없이 집계와 행 정보를 동시에 유지하는 OLAP 함수입니다.
| 함수 | 설명 |
|---|---|
| ROW_NUMBER() | 파티션 내 행 번호 (동점 구별) |
| RANK() | 동점 있으면 같은 순위·건너뜀 |
| DENSE_RANK() | 동점 있어도 순위 건너뛰지 않음 |
| LAG()/LEAD() | 이전/다음 행 값 참조 |
| SUM() OVER() | 누적합 |
| NTILE(n) | n등분 버킷 번호 |
나. 조인 유형
| 조인 | 설명 |
|---|---|
| INNER JOIN | 양쪽 모두 일치하는 행만 |
| LEFT OUTER JOIN | 왼쪽 전체 + 오른쪽 일치 |
| RIGHT OUTER JOIN | 오른쪽 전체 + 왼쪽 일치 |
| FULL OUTER JOIN | 양쪽 전체 |
| CROSS JOIN | 모든 조합 (카티션곱) |
| SELF JOIN | 자기 자신과 조인 |
시험 포인트
윈도우함수 문법: 함수() OVER (PARTITION BY 컬럼 ORDER BY 컬럼)
서브쿼리 유형: 스칼라(단일값)·인라인뷰(FROM절)·중첩(WHERE절)
Ⅲ.결론
결론
SQL은 DB의 공통 언어이며, 윈도우함수·CTE·재귀쿼리 등 고급 기능으로 복잡한 분석을 표현합니다.
향후 NewSQL·분산 SQL(SparkSQL·Presto)로 확장되고 있습니다.
"SQL을 잘 쓰는 것은 데이터를 생각하는 능력이다."
블로그: 기술사 학습노트 · imt-log.tistory.com
'데이터베이스' 카테고리의 다른 글
| NoSQL 데이터베이스 종류와 특징 비교 정리 (0) | 2026.03.19 |
|---|---|
| 데이터베이스 인덱스 쿼리 최적화 완벽 정리 (0) | 2026.03.19 |
| 트랜잭션 ACID 동시성 제어 락 개념 정리 (0) | 2026.03.19 |
| 관계형 데이터베이스 정규화 1NF 2NF 3NF 정리 (0) | 2026.03.19 |
| 데이터베이스 완전정복 — 기술사 핵심 토픽 모음 (0) | 2026.03.18 |