SQLD 데이터베이스 자격증 합격 로드맵 | SQL부터 고급까지
SQLD란?
SQL Developer (SQLD)는 한국데이터베이스진흥원이 주관하는 SQL 전문가 자격증입니다. 개발자, 데이터 분석가 필수 자격증입니다.
자격증의 가치
- 개발 직무 필수 자격증
- 금융, 보험사 채용 필수
- 연봉 5-10% 상승
- 상대적으로 쉬운 자격증 (합격률 50% 이상)
SQLD vs SQLP (개발자 vs 전문가)
| 항목 | SQLD | SQLP |
| 난이도 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 응시료 | 60,000원 | 80,000원 |
| 시간 | 90분 | 180분 |
| 합격선 | 60점 | 70점 |
| 출제 비중 | SQL 70% | SQL 50%, 성능 50% |
| 합격률 | 약 50% | 약 25% |
| 취업 가치 | 높음 | 매우 높음 |
SQLD 시험 범위
출제 영역 (2과목)
① 데이터 모델링 및 SQL 기초 (35점)
- 데이터베이스 개념
- ER 다이어그램
- SQL 기본 문법 (SELECT, WHERE, ORDER BY)
- 함수 (문자, 숫자, 날짜, 변환)
- WHERE 절 조건
- GROUP BY, HAVING
- JOIN (INNER, LEFT, RIGHT, FULL OUTER, CROSS)
- 서브쿼리 (Scalar, Inline View, Correlated)
- 집합 연산 (UNION, INTERSECT, EXCEPT)
- 윈도우 함수 (ROW_NUMBER, RANK, DENSE_RANK)
SQLD 4주 합격 로드맵
1주차: SQL 기초 및 함수
주요 학습 내용:
-- SELECT 기본
SELECT column1, column2 FROM table_name;
-- WHERE 조건
SELECT * FROM employees WHERE salary > 5000;
SELECT * FROM customers WHERE city IN ('Seoul', 'Busan');
-- ORDER BY 정렬
SELECT * FROM products ORDER BY price DESC;
-- 함수들
UPPER('hello') -- 'HELLO'
SUBSTR('hello', 2, 3) -- 'ell'
CONCAT('hello', 'world') -- 'helloworld'
ROUND(12.567, 2) -- 12.57
TRUNC(12.567, 2) -- 12.562주차: GROUP BY, 집계, 다중 행 함수
-- GROUP BY 기본
SELECT department, COUNT(*), AVG(salary)
FROM employees
GROUP BY department;
-- HAVING 조건
SELECT department, COUNT(*) as emp_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
-- 집계 함수
COUNT(*), SUM(), AVG(), MAX(), MIN()
COUNT(DISTINCT column) -- 중복 제거 개수
-- 다중 행 함수 (GROUP BY 필요)
LISTAGG(name, ',') WITHIN GROUP (ORDER BY name)3주차: JOIN과 서브쿼리
JOIN 종류:
-- INNER JOIN (교집합)
SELECT e.name, d.department_name
FROM employees e
INNER JOIN departments d ON e.dept_id = d.id;
-- LEFT OUTER JOIN
SELECT e.name, d.department_name
FROM employees e
LEFT OUTER JOIN departments d ON e.dept_id = d.id;
-- FULL OUTER JOIN
SELECT e.name, d.department_name
FROM employees e
FULL OUTER JOIN departments d ON e.dept_id = d.id;
-- SELF JOIN
SELECT e1.name, e2.name as manager_name
FROM employees e1
LEFT JOIN employees e2 ON e1.manager_id = e2.id;서브쿼리:
-- 스칼라 서브쿼리
SELECT name, salary,
(SELECT AVG(salary) FROM employees) as avg_sal
FROM employees;
-- 인라인 뷰
SELECT e.*, d.dept_name
FROM (SELECT * FROM employees WHERE salary > 5000) e
JOIN departments d ON e.dept_id = d.id;
-- 상관 서브쿼리
SELECT name, salary
FROM employees e1
WHERE salary > (SELECT AVG(salary) FROM employees e2
WHERE e2.dept_id = e1.dept_id);4주차: 윈도우 함수 및 집합연산
윈도우 함수 (SQLD 최고난도):
-- ROW_NUMBER: 순번 (중복 불가)
SELECT name, salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) as rank
FROM employees;
-- RANK: 순위 (동점 시 같은 순위)
RANK() OVER (ORDER BY salary DESC)
-- DENSE_RANK: 순위 (동점 후 다음 순위 연속)
DENSE_RANK() OVER (ORDER BY salary DESC)
-- LAG, LEAD: 이전/다음 행 값
SELECT name, salary,
LAG(salary) OVER (ORDER BY salary) as prev_salary,
LEAD(salary) OVER (ORDER BY salary) as next_salary
FROM employees;
-- SUM, AVG 윈도우 함수
SELECT name, salary,
SUM(salary) OVER (ORDER BY salary) as running_sum
FROM employees;
-- PARTITION BY: 그룹별 윈도우
SELECT department, name, salary,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC)
FROM employees;집합 연산:
-- UNION (중복 제거)
SELECT name FROM employees WHERE dept_id = 1
UNION
SELECT name FROM employees WHERE dept_id = 2;
-- UNION ALL (중복 포함)
UNION ALL
-- INTERSECT (교집합)
INTERSECT
-- EXCEPT/MINUS (차집합)
MINUS---
SQLD 실전 문제 예제
유형 1: 다중 조건 조회
Q. 2023년 이후 입사, 급여 5000 이상인 직원 중
부서별 평균급여가 5500 이상인 부서의 직원 정보
SELECT e.name, e.salary, d.dept_name,
AVG(e.salary) OVER (PARTITION BY e.dept_id) as dept_avg
FROM employees e
JOIN departments d ON e.dept_id = d.id
WHERE e.hire_date >= '2023-01-01'
AND e.salary >= 5000
AND e.dept_id IN (
SELECT dept_id
FROM employees
WHERE salary >= 5000
GROUP BY dept_id
HAVING AVG(salary) >= 5500
);유형 2: 윈도우 함수 활용
Q. 부서별 급여 순위와 누적 급여 계산
SELECT department_id,
employee_id,
salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as dept_rank,
SUM(salary) OVER (PARTITION BY department_id
ORDER BY salary DESC) as running_total
FROM employees;---
SQLD 자주 묻는 질문 (FAQ)
Q1. 1. 개발 경험이 없어도 SQLD를 취득할 수 있나요?
네, 가능합니다. SQL은 언어가 아니라 쿼리 문법이므로:- 비전공자도 충분히 학습 가능
- 4주 집중 준비로 합격 가능
- 데이터베이스 개념 이해 필요 (1주일이면 충분)
Q2. 2. 어떤 데이터베이스를 알아야 하나요?
SQLD는 DB-agnostic입니다:- Oracle, MySQL, SQL Server, PostgreSQL 모두 범용
- Oracle SQL이 표준이지만 차이 미미
- 한 가지 DB만 알면 충분
Q3. 3. SQLD와 SQLP, 둘 다 취득해야 하나요?
- SQLD: 개발자 필수
- SQLP: 성능 최적화 필요 시 (선택)
- 보통 SQLD만 충분
Q4. 4. 시험에서 자주 틀리는 부분은?
Q5. 5. 시험 당일 환경은 어떻게 되나요?
- 온라인 시험 (컴퓨터 기반)
- 실제 SQL을 써서 문제 풀이
- 정답은 자동으로 판정 (실행 가능 여부)
SQLD 고득점 팁
일일 학습 계획 (3시간)
1. 개념 학습: 60분 (새로운 주제)
2. 문제 풀이: 100분 (실습)
3. 오답 분석: 20분 (틀린 문제 복습)모의고사 전략
- 문제집 1회: 60점 이상 목표
- 문제집 2회: 70점 이상 목표
- 문제집 3회: 75점 이상 목표
시험 당일 팁
---
SQLD 학습 자료
추천 교재
온라인 강의
실습 환경
---
결론
SQLD는 개발자 필수 자격증입니다.
- 1주차: 기초 (SELECT, WHERE, 함수)
- 2주차: 집계 (GROUP BY, 함수)
- 3주차: 결합 (JOIN, 서브쿼리)
- 4주차: 고급 (윈도우 함수, 집합연산)
---
관련 콘텐츠: 교육 가이드