반응형
1. SQL 문장의 종류
| 분류 | 대상 | 주요 명령어 | 자동 반영 (Auto Commit) |
|---|---|---|---|
| DDL | 구조 | CREATE, ALTER, DROP | O (즉시 반영) |
| DML | 데이터 | SELECT, INSERT, UPDATE, DELETE | X (TCL 필요) |
| DCL | 권한 | GRANT, REVOKE | O (보통 즉시 반영) |
| TCL | 트랜잭션 | COMMIT, ROLLBACK, SAVEPOINT | - |
1.1. DDL (Data Definition Language, 데이터 정의어)
DDL은 데이터베이스의 뼈대를 만드는 명령어다. 테이블, 인덱스, 뷰 등을 생성하거나 수정, 삭제할 때 사용한다.
- 특징: 실행 즉시 데이터베이스에 반영된다. (Auto Commit)
- 주요 명령어:
- CREATE: 객체 생성
- ALTER: 구조 수정 (칼럼 추가, 타입 변경 등)
- DROP: 객체 완전 삭제
- TRUNCATE: 데이터 즉시 삭제 (구조는 유지)
1.2. DML (Data Manipulation Language, 데이터 조작어)
테이블 안의 데이터를 다루는 명령어다. 데이터를 입력, 삭제, 수정, 조회의 역할을 한다.
- 특징: 실행 후 바로 반영되지 않고, COMMIT을 해야 확정된다.
- 주요 명령어: SELECT(조회), INSERT(삽입), UPDATE(수정), DELETE(삭제)
1.3. DCL & 1.4. TCL
권한 관리 및 트랜잭션 제어를 담당한다.
- GRANT / REVOKE: 권한 부여 및 회수
- COMMIT: 최종 반영 / ROLLBACK: 취소 / SAVEPOINT: 지점 지정
2. 주요 함수
2.1. NULL 관련 함수
| 함수 | 설명 |
|---|---|
| NVL / ISNULL | 표현식1이 NULL이면 표현식2 출력. (타입 일치 필수) |
| NULLIF | 두 값이 같으면 NULL, 다르면 표현식1 리턴 |
| COALESCE | NULL이 아닌 최초의 표현식 리턴 |
2.2. 문자형 함수
- LOWER / UPPER: 소문자 / 대문자 변환
- ASCII / CHR: 코드 번호 변환
- CONCAT: 문자열 연결 (합성 연산자와 동일)
- SUBSTR: m위치에서 n개 추출 (1부터 시작)
- LENGTH / LEN: 길이 반환 (개행 CHR(10) 포함)
- TRIM 시리즈: LTRIM, RTRIM, TRIM (지정 문자 제거)
3. 핵심 문제 정리 및 오답노트
3.1. 집계 함수 NULL 제외
-- COL1 COL2 COL3
-- 30 NULL 20
-- NULL 50 10
-- 0 10 NULL
SELECT SUM(COL2)+SUM(COL3) FROM TAB_A WHERE COL1 IS NOT NULL
-- 30 NULL 20
-- NULL 50 10
-- 0 10 NULL
SELECT SUM(COL2)+SUM(COL3) FROM TAB_A WHERE COL1 IS NOT NULL
COL1이 NULL이 아닌 행(1행, 3행)에서 COL2 혹은 COL3가 NULL이므로,
집계 함수 계산 시 제외되어 결과값은 NULL이 된다.
집계 함수 계산 시 제외되어 결과값은 NULL이 된다.
3.2. 강제 숫자 형변환 및 ‘’ 조회 방법
CREATE TABLE SERVICE (
SERVICE_NUMBER VARCHAR2(10) PRIMARY KEY,
SERVICE_NAME VARCHAR2(100) NULL,
START_DATE DATE NOT NULL
);
SERVICE_NUMBER VARCHAR2(10) PRIMARY KEY,
SERVICE_NAME VARCHAR2(100) NULL,
START_DATE DATE NOT NULL
);
- [X]
SERVICE_NUMBER = 1조회 시, 모든 레코드가 숫자 형식이어야 에러가 안 난다. - [X] 오라클에서
''입력 시 NULL로 저장된다. - [X] 위 경우 오라클은
IS NULL로만 조회가 가능하다. (=''는 불가) - [O] SQL Server는
''를 데이터로 인식하므로=''로 조회해야 한다.
3.3. 기타 중요 포인트
- TO_DATE(’202601’, ‘YYYYMM’) → 일자 생략 시 자동 1일 설정 (2026-01-01)
- CASE 변환:
CASE LOC WHEN ‘NEW YORK’ THEN ‘EAST’ ...(단순 CASE문) - 실행 순서:
FROM➜WHERE➜GROUP BY➜HAVING➜SELECT➜ORDER BY
순수 관계 연산자 (핵심 정리)
- SELECT: 특정 행(Row) 추출
- PROJECT: 특정 열(Column) 추출
- JOIN: 공통 속성 기준 결합
- DEVISION: 모든 조건을 만족하는 튜플 추출 (NOT EXISTS 활용)
집합 관계 연산자 (핵심 정리)
- UNION
- INTERSECTION
- DIFFERENCE
- CROSS JOIN (Cartesian Product)): 조인 조건 없이 모든 데이터 조합 (n × m)
CROSS JOIN vs FULL OUTER JOIN
- CROSS JOIN: 모든 경우의 수 생성 (조인 조건 X)
- FULL OUTER JOIN: 양쪽 테이블 전체 정보 누락 없이 결합 (조인 조건 필수)
- CROSS JOIN: 모든 경우의 수 생성 (조인 조건 X)
- FULL OUTER JOIN: 양쪽 테이블 전체 정보 누락 없이 결합 (조인 조건 필수)
반응형
'IT 자격증 > SQLP' 카테고리의 다른 글
| [SQL자격검정실전문제] 2. 데이터 모델과 SQL - 데이터베이스 정규화란? (0) | 2026.01.11 |
|---|---|
| [SQL자격검정실전문제] 1. 데이터 모델링의 이해 (0) | 2026.01.11 |