SQLD · SQL 활용 (과목2)
한국어 · 34장
SQL 개발자 과목2 서브쿼리·윈도우함수·DDL/DML 핵심 34개
-
서브쿼리(Subquery)
쿼리 안에 포함된 또 다른 SELECT. 위치에 따라 스칼라·인라인뷰·중첩.
🔑 쿼리 속 쿼리=서브쿼리
-
스칼라 서브쿼리
SELECT 절에서 하나의 값을 반환하는 서브쿼리.
🔑 SELECT절 단일값
-
인라인 뷰(Inline View)
FROM 절에 오는 서브쿼리. 가상 테이블처럼 사용.
🔑 FROM절 서브쿼리
-
중첩 서브쿼리
WHERE 절에 오는 서브쿼리. 조건 비교에 사용.
🔑 WHERE절 서브쿼리
-
연관 서브쿼리(Correlated)
메인쿼리 컬럼을 참조해 행마다 반복 수행되는 서브쿼리.
🔑 메인 참조 반복=연관
-
다중행 서브쿼리 연산자
IN·ANY·ALL·EXISTS. 여러 행을 반환하는 서브쿼리와 비교.
🔑 IN·ANY·ALL·EXISTS
-
EXISTS
서브쿼리 결과의 존재 여부(참/거짓)만 확인.
🔑 존재 여부 확인=EXISTS
-
집합 연산자
UNION·UNION ALL·INTERSECT·MINUS(EXCEPT). 결과 집합을 결합.
🔑 UNION·INTERSECT·MINUS
-
UNION vs UNION ALL
UNION은 중복 제거+정렬, UNION ALL은 중복 포함(성능 유리).
🔑 UNION=중복제거, ALL=포함
-
ROLLUP
GROUP BY 확장. 소계와 총계를 계층적으로 생성.
🔑 소계·총계=ROLLUP
-
CUBE
가능한 모든 조합의 소계·총계를 생성.
🔑 모든 조합 소계=CUBE
-
GROUPING SETS
원하는 그룹 조합만 지정해 집계.
🔑 선택 그룹 집계=GROUPING SETS
-
윈도우 함수(Window)
행 간 관계를 연산. OVER(PARTITION BY ... ORDER BY ...) 구문.
🔑 행 간 연산=윈도우
-
RANK / DENSE_RANK / ROW_NUMBER
RANK(공동순위 후 건너뜀)·DENSE_RANK(안 건너뜀)·ROW_NUMBER(고유 순번).
🔑 RANK·DENSE_RANK·ROW_NUMBER
-
집계 윈도우 함수
SUM/AVG/COUNT ... OVER(). 누적·이동 집계 계산.
🔑 누적 집계=SUM OVER
-
LAG / LEAD
이전 행(LAG)·다음 행(LEAD)의 값을 참조.
🔑 이전=LAG, 다음=LEAD
-
FIRST_VALUE / LAST_VALUE
윈도우 내 첫 행·마지막 행의 값을 반환.
🔑 첫값·끝값
-
NTILE / RATIO_TO_REPORT
NTILE(N)은 N등분, RATIO_TO_REPORT는 전체 대비 비율.
🔑 N등분·비율
-
계층형 질의
START WITH(시작)·CONNECT BY(연결)로 트리 구조 조회. LEVEL 의사컬럼.
🔑 START WITH·CONNECT BY
-
PIVOT / UNPIVOT
행↔열 전환. PIVOT(행→열)·UNPIVOT(열→행).
🔑 행↔열 전환
-
정규표현식(REGEXP)
REGEXP_LIKE·REGEXP_SUBSTR 등 패턴 매칭 함수.
🔑 패턴 매칭=REGEXP
-
CREATE TABLE
새 테이블을 정의(컬럼·데이터타입·제약조건).
🔑 테이블 생성=CREATE
-
ALTER TABLE
테이블 구조 변경(컬럼 추가·수정·삭제·제약).
🔑 구조 변경=ALTER
-
DROP vs TRUNCATE vs DELETE
DROP(객체 삭제)·TRUNCATE(전체 행+구조 유지, 롤백 불가)·DELETE(행 조건 삭제, 롤백 가능).
🔑 DROP≠TRUNCATE≠DELETE
-
제약조건(Constraint)
PRIMARY KEY·FOREIGN KEY·UNIQUE·NOT NULL·CHECK.
🔑 PK·FK·UNIQUE·CHECK
-
PRIMARY KEY
행을 유일하게 식별. UNIQUE + NOT NULL 성질.
🔑 유일+NOT NULL=PK
-
FOREIGN KEY
다른 테이블 PK를 참조해 참조 무결성을 보장.
🔑 참조 무결성=FK
-
INSERT / UPDATE / DELETE
행 삽입·수정·삭제. MERGE로 있으면 UPDATE 없으면 INSERT.
🔑 삽입·수정·삭제(+MERGE)
-
MERGE
조건에 따라 매칭되면 UPDATE, 아니면 INSERT를 한 번에 수행.
🔑 있으면 UPDATE/없으면 INSERT
-
트랜잭션(ACID)
원자성(Atomicity)·일관성(Consistency)·고립성(Isolation)·지속성(Durability).
🔑 원자·일관·고립·지속
-
COMMIT / ROLLBACK / SAVEPOINT
COMMIT(확정)·ROLLBACK(취소)·SAVEPOINT(부분 취소 지점).
🔑 확정·취소·지점
-
VIEW
하나 이상의 테이블에서 유도된 가상 테이블. 실제 데이터 저장 안 함.
🔑 가상 테이블=VIEW
-
옵티마이저(Optimizer)
SQL 최적 실행 계획을 세우는 엔진. 규칙 기반(RBO)·비용 기반(CBO).
🔑 실행계획 수립=옵티마이저
-
인덱스(Index)
검색 속도를 높이는 자료구조(B-Tree 등). DML 성능은 저하될 수 있음.
🔑 검색↑ DML↓=인덱스
비슷한 덱