[SQLD합격] 실전 모의고사와 약점 보완
실전 시험 흐름으로 전체 내용을 통합한다. 시간 제한 안에서 문제를 푸는 훈련을 하며, 자주 틀리는 개념을 다시 정리한다. 특히 JOIN, 모델링, 윈도우 함수처럼 고득점 핵심 파트를 집중 보완한다. 시험 직전 최종 정리까지 가능하도록 구성된 실전 마무리 단계다.
수록 문항
총 76개아래 문항들은 이 학습지에 수록된 카드입니다. 각 카드는 문제(Q)와 답(A)으로 구성되어 있으며, 일부 카드에는 추가 해설이 포함되어 있습니다. 로그인하면 이 학습지를 내 계정으로 복사해 카드를 한 장씩 넘기며 반복 학습할 수 있고, 숙달한 카드는 완료 표시하여 다음 세션에서 제외할 수 있습니다.
-
#1Q.
ROLLBACK
A.현재 트랜잭션 작업 내용을 취소한다
마지막 COMMIT 이전 상태로 되돌린다. -
#2Q.
SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees)
A.전체 평균 급여보다 높은 직원만 조회한다
집계 함수와 단일행 서브쿼리를 함께 사용하는 SQLD 대표 실전 문제다. -
#3Q.
SELECT * FROM employees e WHERE salary = (SELECT MAX(salary) FROM employees WHERE department_id = e.department_id)
A.각 부서에서 가장 높은 급여를 받는 직원만 조회한다
상관 서브쿼리 핵심 패턴이며 SQLD 빈출 문제다. -
#4Q.
SELECT department_id, COUNT(*) FROM employees GROUP BY department_id HAVING COUNT(*) > 5
A.직원이 5명을 초과하는 부서만 조회한다
GROUP BY 이후 HAVING 조건 적용 순서를 자주 물어본다. -
#5Q.
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 5000
A.평균 급여가 5000 초과인 부서만 조회한다
집계 함수 조건은 WHERE가 아니라 HAVING에 작성해야 한다. -
#6Q.
SELECT * FROM employees WHERE commission_pct IS NULL
답은 로그인 후 확인 -
#7Q.
SELECT * FROM employees WHERE commission_pct = NULL
답은 로그인 후 확인 -
#8Q.
SELECT * FROM employees WHERE department_id NOT IN (10,20,NULL)
답은 로그인 후 확인 -
#9Q.
SELECT * FROM employees WHERE EXISTS (SELECT 1 FROM departments d WHERE employees.department_id = d.department_id)
답은 로그인 후 확인 -
#10Q.
SELECT * FROM employees WHERE salary > ALL (SELECT salary FROM employees WHERE department_id = 10)
답은 로그인 후 확인 -
#11Q.
SELECT * FROM employees WHERE salary > ANY (SELECT salary FROM employees WHERE department_id = 10)
답은 로그인 후 확인 -
#12Q.
SELECT employee_id, RANK() OVER(ORDER BY salary DESC) FROM employees
답은 로그인 후 확인 -
#13Q.
SELECT employee_id, DENSE_RANK() OVER(ORDER BY salary DESC) FROM employees
답은 로그인 후 확인 -
#14Q.
SELECT employee_id, ROW_NUMBER() OVER(ORDER BY salary DESC) FROM employees
답은 로그인 후 확인 -
#15Q.
SELECT employee_id, department_id, AVG(salary) OVER(PARTITION BY department_id) FROM employees
답은 로그인 후 확인 -
#16Q.
SELECT employee_id, salary, SUM(salary) OVER(ORDER BY hiredate) FROM employees
답은 로그인 후 확인 -
#17Q.
SELECT employee_id, LAG(salary) OVER(ORDER BY hiredate) FROM employees
답은 로그인 후 확인 -
#18Q.
SELECT employee_id, LEAD(salary) OVER(ORDER BY hiredate) FROM employees
답은 로그인 후 확인 -
#19Q.
SELECT department_id, SUM(salary) FROM employees GROUP BY ROLLUP(department_id)
답은 로그인 후 확인 -
#20Q.
SELECT department_id, SUM(salary) FROM employees GROUP BY CUBE(department_id)
답은 로그인 후 확인 -
#21Q.
SELECT department_id, SUM(salary) FROM employees GROUP BY GROUPING SETS(department_id,())
답은 로그인 후 확인 -
#22Q.
SELECT employee_id, CASE WHEN salary >= 10000 THEN 'A' WHEN salary >= 5000 THEN 'B' ELSE 'C' END FROM employees
답은 로그인 후 확인 -
#23Q.
SELECT employee_id, DECODE(department_id,10,'SALES',20,'HR','ETC') FROM employees
답은 로그인 후 확인 -
#24Q.
SELECT employee_id, NVL(commission_pct,0) FROM employees
답은 로그인 후 확인 -
#25Q.
SELECT employee_id, COALESCE(commission_pct,bonus_pct,0) FROM employees
답은 로그인 후 확인 -
#26Q.
SELECT employee_id, NULLIF(salary,0) FROM employees
답은 로그인 후 확인 -
#27Q.
SELECT * FROM employees WHERE first_name LIKE 'K%'
답은 로그인 후 확인 -
#28Q.
SELECT * FROM employees WHERE first_name LIKE '%K'
답은 로그인 후 확인 -
#29Q.
SELECT * FROM employees WHERE UPPER(first_name) = 'KIM'
답은 로그인 후 확인 -
#30Q.
SELECT * FROM employees WHERE hiredate >= TO_DATE('20250101','YYYYMMDD') AND hiredate < TO_DATE('20260101','YYYYMMDD')
답은 로그인 후 확인 -
#31Q.
SELECT * FROM employees e JOIN departments d ON e.department_id = d.department_id
답은 로그인 후 확인 -
#32Q.
SELECT * FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id
답은 로그인 후 확인 -
#33Q.
SELECT * FROM users u LEFT JOIN orders o ON u.user_id = o.user_id WHERE o.order_id IS NULL
답은 로그인 후 확인 -
#34Q.
SELECT * FROM employees e, departments d WHERE e.department_id = d.department_id
답은 로그인 후 확인 -
#35Q.
SELECT * FROM employees e CROSS JOIN departments d
답은 로그인 후 확인 -
#36Q.
SELECT COUNT(*) FROM employees
답은 로그인 후 확인 -
#37Q.
SELECT COUNT(commission_pct) FROM employees
답은 로그인 후 확인 -
#38Q.
SELECT DISTINCT department_id FROM employees
답은 로그인 후 확인 -
#39Q.
SELECT * FROM employees ORDER BY salary DESC
답은 로그인 후 확인 -
#40Q.
SELECT * FROM employees ORDER BY salary ASC
답은 로그인 후 확인 -
#41Q.
SELECT * FROM employees WHERE department_id IN (10,20,30)
답은 로그인 후 확인 -
#42Q.
SELECT * FROM employees WHERE department_id BETWEEN 10 AND 30
답은 로그인 후 확인 -
#43Q.
SELECT * FROM employees WHERE department_id NOT BETWEEN 10 AND 30
답은 로그인 후 확인 -
#44Q.
SELECT * FROM employees WHERE first_name LIKE '_A%'
답은 로그인 후 확인 -
#45Q.
SELECT employee_id, TO_CHAR(hiredate,'YYYYMMDD') FROM employees
답은 로그인 후 확인 -
#46Q.
SELECT employee_id, TO_DATE('20250515','YYYYMMDD') FROM employees
답은 로그인 후 확인 -
#47Q.
SELECT employee_id, ROUND(salary,-2) FROM employees
답은 로그인 후 확인 -
#48Q.
SELECT employee_id, TRUNC(salary,-2) FROM employees
답은 로그인 후 확인 -
#49Q.
SELECT employee_id, MOD(salary,1000) FROM employees
답은 로그인 후 확인 -
#50Q.
SELECT employee_id, department_id FROM employees WHERE department_id = 10
답은 로그인 후 확인 -
#51Q.
TABLE ACCESS FULL
답은 로그인 후 확인 -
#52Q.
INDEX RANGE SCAN
답은 로그인 후 확인 -
#53Q.
INDEX UNIQUE SCAN
답은 로그인 후 확인 -
#54Q.
TABLE ACCESS BY INDEX ROWID
답은 로그인 후 확인 -
#55Q.
HASH JOIN
답은 로그인 후 확인 -
#56Q.
NL JOIN
답은 로그인 후 확인 -
#57Q.
SORT MERGE JOIN
답은 로그인 후 확인 -
#58Q.
SELECT /*+ INDEX(employees idx_emp_dept) */ * FROM employees WHERE department_id = 10
답은 로그인 후 확인 -
#59Q.
SELECT /*+ FULL(employees) */ * FROM employees
답은 로그인 후 확인 -
#60Q.
SELECT /*+ USE_HASH(d) */ * FROM employees e JOIN departments d ON e.department_id = d.department_id
답은 로그인 후 확인 -
#61Q.
SELECT /*+ USE_NL(d) */ * FROM employees e JOIN departments d ON e.department_id = d.department_id
답은 로그인 후 확인 -
#62Q.
SELECT /*+ LEADING(e d) */ * FROM employees e JOIN departments d ON e.department_id = d.department_id
답은 로그인 후 확인 -
#63Q.
COMMIT
답은 로그인 후 확인 -
#64Q.
SAVEPOINT sp1
답은 로그인 후 확인 -
#65Q.
ROLLBACK TO sp1
답은 로그인 후 확인 -
#66Q.
원자성
답은 로그인 후 확인 -
#67Q.
일관성
답은 로그인 후 확인 -
#68Q.
격리성
답은 로그인 후 확인 -
#69Q.
지속성
답은 로그인 후 확인 -
#70Q.
기본키
답은 로그인 후 확인 -
#71Q.
외래키
답은 로그인 후 확인 -
#72Q.
참조 무결성
답은 로그인 후 확인 -
#73Q.
제1정규형
답은 로그인 후 확인 -
#74Q.
제2정규형
답은 로그인 후 확인 -
#75Q.
제3정규형
답은 로그인 후 확인 -
#76Q.
반정규화
답은 로그인 후 확인
처음 5개의 답만 미리 보여드려요. 전체 76개 항목은 로그인 후 학습할 수 있습니다.
이 학습지를 효과적으로 활용하는 방법
- ① 처음에는 전체 문항을 한 번씩 훑어보며 익숙한 항목과 낯선 항목을 분류하세요.
- ② 학습 세션에서 "안 외운 문항만" 옵션으로 아직 숙달하지 못한 카드에 집중합니다.
- ③ 랜덤 순서 학습을 활용해 카드 순서에 의존한 암기를 방지하세요.
- ④ 키보드 단축키(1·2·A·D·Space)를 쓰면 한 손으로도 빠르게 복습할 수 있습니다.
- ⑤ 복사(Fork)한 학습지에는 자유롭게 나만의 해설이나 예문을 덧붙여 내 스타일로 다듬어 보세요.