| 구분 | 이름 | 주요 명령어 | 트랜잭션 |
|---|---|---|---|
| DDL | 데이터 정의어 | CREATE, ALTER, DROP, TRUNCATE | 자동 COMMIT |
| DML | 데이터 조작어 | SELECT, INSERT, UPDATE, DELETE | TCL로 제어 |
| DCL | 데이터 제어어 | GRANT, REVOKE | 자동 COMMIT |
| TCL | 트랜잭션 제어어 | COMMIT, ROLLBACK, SAVEPOINT | - |
SELECT 문의 논리적 실행 순서 (매우 중요):
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
WHERE는 개별 행을, HAVING은 그룹화된 결과를 필터링합니다.주요 함수:
NVL/ISNULL, COALESCE, CASE 등COUNT, SUM, AVG, MAX, MIN (주로 GROUP BY와 함께 사용)제약조건: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK는 데이터의 무결성을 보장하는 핵심 규칙입니다.
INNER JOIN: 두 테이블에 모두 일치하는 데이터만 반환 (교집합).OUTER JOIN: 일치하지 않아도 기준 테이블의 데이터는 모두 반환 (LEFT, RIGHT, FULL).SELF JOIN: 하나의 테이블을 별칭(Alias)을 통해 자기 자신과 조인하여 계층 구조를 표현.SELECT 문입니다.SELECT 절): 단일 값(1행 1열)을 반환.FROM 절): 결과 집합을 가상의 테이블처럼 사용.WHERE, HAVING 절): 조건절에서 비교 값으로 사용.SELECT 문의 결과 집합을 합치거나 비교합니다. (컬럼 수/타입 일치 필요)UNION: 중복을 제거한 합집합 (느림).UNION ALL: 중복을 포함한 합집합 (빠름).INTERSECT: 교집합.MINUS / EXCEPT: 차집합.GROUP BY와 달리 원본 행을 유지하면서, PARTITION BY로 정의된 그룹(창) 내에서 순위, 누적 합계 등 복잡한 분석 연산을 수행하는 강력한 기능입니다.RANK(), DENSE_RANK(), ROW_NUMBER()SUM() OVER (...), AVG() OVER (...)LAG() (이전 행), LEAD() (다음 행)COMMIT: 모든 변경 사항을 데이터베이스에 영구 저장.ROLLBACK: 모든 변경 사항을 취소하고 이전 상태로 복귀.GRANT: 사용자에게 특정 객체에 대한 권한을 부여.REVOKE: 사용자로부터 권한을 회수.JOIN과 서브쿼리를 자유자재로 활용해야 합니다.GROUP BY를 넘어, 윈도우 함수를 사용하여 더 정교한 결과를 도출할 수 있습니다.