본문 바로가기

SQL

SQLD 기출 문제 풀이 및 해설, SQL 개발자 자격증 핵심 이론 완벽 정리

728x90
반응형
SMALL

SQLD 접수를 해둔 후 공부를 하나도 안 하고 있다가 일주일 남은 이제 와서 벼락치기 시작.

실무에서 SQL을 사용하고 있으며 SQLD 이론이 매우 모자람을 느끼고 있음.

집에 있는 교재는 2023년 교재라 개정 시험 범위가 아니라 시험 범위가 부정확.

유튜브에 있는 인강을 살짝 듣기 시작했는데 이 속도로는 안 될 것 같아 기출문제 무한반복을 선택함.

 

 

 

SQLD 접수 후기, 독학으로 준비하는 방법 및 시험장 선택 꿀팁

SQLD(SQL Developer) 자격증은 데이터베이스 실무를 다루는 개발자와 데이터 분석가들에게 필수적인 자격증으로 자리 잡고 있다. 최근 데이터 기반 업무가 증가하면서 SQLD 자격증에 대한 관심이 급증

creatolog.tistory.com

 

 

SQLD 기출문제

SQLD 기출문제는 이기적 CBT, 영진닷컴 홈페이지에서 만나볼 수 있다.

 

이기적 CBT, 영진닷컴

 

cbt.youngjin.com

 

 

IT 자격증란에 SQL 개발자 필기가 있다.

 

 

객관식 랜덤 출제로 문제를 풀어볼 수 있다.

실제 시험과 동일하게 문항수와 시간제한이 있다.

문제은행 방식으로 기출문제가 자동 추출되어 문제를 풀 때마다 문제가 변동되는 방식으로 풀기 가능.

 

 

 

 

오답노트

  • NTILE(n)은 데이터를 n개로 동일하게 나누는 함수
  • 번호는 1부터 n까지 부여
  • ORDER BY로 정렬한 후 NTILE 적용
  • 가장 큰 값이 속한 그룹이 1, 가장 작은 값이 속한 그룹이 n

 

 

JOIN 종류 핵심 특징 조건
EQUI JOIN (등가 조인) 같은 값(등호=)으로 연결 꼭 PK-FK 관계일 필요 X
NON-EQUI JOIN (비등가 조인) 등호(=) 아닌 조건으로 연결 BETWEEN 등 범위 조건
OUTER JOIN (아우터 조인) 매칭되지 않는 데 이터 포함 LEFT/RIGHT/FULL
SELF JOIN (자체 조인) 같은 테이블끼리 연결 같은 테이블 사용

 

 

함수 중복 발생 시 처리 결과 예시
RANK() 중복된 개수만큼 등수를 건너뜀 1, 2, 2, 4, 5
DENSE_RANK() 중복돼도 등수를 연속으로 부여 1, 2, 2, 3, 4
ROW_NUMBER() 중복 상관없이 순서대로 증가 1, 2, 3, 4, 5
NTILE(n) 데이터를 n개 그룹으로 나눠 순위 부여 그룹(1, 1, 2, 2, 3, 3...)

 

 

구분 핵심 질문 설명 예시
데이터 관점 무엇을 처리하는가? 데이터의 종류와 구조를 정의 고객, 주문, 상품 데이터 정의
프로세스 관점 어떻게 처리하는가? 업무 처리 과정 및 흐름 분석 주문 → 결제 → 배송의 절차 분석
상관 관점 데이터와 프로세스가 어떤 관계를 맺는가? 데이터와 프로세스의 연관성 및 통합 분석 주문 프로세스와 고객 데이터의 관계

 

 

 

 

구분 설명
명사로 표현되는 것 사람, 장소, 물건, 사건 등
업무상 관리 필요성 업무 프로세스에서 반드시 관리 필요
저장이 필요한 대상 지속적으로 저장 및 관리 필요

 

 

구분 설명 절차형 여부
PROCEDURE (프로시저) 여러 SQL문을 하나의 실행 단위로 묶어 실행 O
TRIGGER (트리거) 특정 이벤트가 발생할 때 자동으로 실행되는 객체 O
USER DEFINED FUNCTION (사용자 정의 함수) 사용자가 직접 정의하여 필요한 기능 수행 O
BUILT-IN FUNCTION (내장 함수) DB가 미리 제공, 사용자가 직접 생성하지 않음 X

 

 

서브쿼리 유형 제공자 역할 Mainquery 값 주입 여부
Filter형 서브쿼리 필터링 조건 제공 있을 수도 없을 수도
Early Filter형 서브쿼리 초기에 수행돼 필터링만 하는 역할 거의 없음 (선 수행)
Associative 서브쿼리 상호작용하는 필터링 역할 있음 (상호 주입)
Access 서브쿼리 메인쿼리에 직접 데이터를 제공하는 역할 없음 (제공만 함)

 

 

개념 특징 핵심 포인트
엔터티 여러 인스턴스의 집합 반드시 둘 이상 인스턴스 보유
속성 엔터티의 특성 일반적으로 여러 개
속성값 속성 하나당 하나의 값만 가짐 여러 값을 가지면 정규화 필요
인스턴스 엔터티의 실제 데이터(행) 다른 엔터티 인스턴스와 관계 형성 가능

 

 

SQL 문장 설명 및 이유 사용 여부
SELECT ROWNUM, ENAME FROM EMP; 전체 조회 시 ROWNUM 자동 부여 가능 O
SELECT EMPNO FROM EMP WHERE ROWNUM=1; 첫 번째 행만 조회 가능 O
SELECCT ENAME FROM EMP WHERE ROWNUM = 2; ROWNUM은 반드시 1부터 시작해야 하므로 결과 없음 X
SELECT DEPTNO FROM EMP WHERE ROWNUM < 10 1부터 연속 번호로 잘 조회됨 O

 

 

연산자 합집합 중복제거 정렬 설명
UNION O O O 중복 제거하고 자동 정렬된 합집합
UNION ALL O X X 중복 제거 없이 모두 그대로 연결
INTERSECT 교집합 O O 두 결과의 공통된 데이터만
EXCEPT 차집합 O O 첫 번째 결과에서 두 번째 결과 제외

 

 

 

 

 

 

 

 

 

 

조건 해석 방법 예시 예시 결과
NOT IN 포함되지 않으면 참 21 NOT IN (10, 15, 19) O
ANY 하나라도 만족하면 참 (OR 조건) 19 < ANY (10, 15, 19) X
ALL 모두가 만족해야 참 (AND 조건) 15 < ALL (10, 15, 19) X
ALL (등호) 모두 같아야 참 19 = ALL (10, 15, 19) X

 

 

답안노트 : 찍어 맞은 문제 정리

  • 해시 조인은 해시 함수를 사용해 빠르게 데이터를 찾는 방식
  • 주로 데이터 양이 많을 때 빠르게 조인하기 위해 사용
  • CPU 사용이 많지만, 랜덤 액세스가 아닌 해시값으로 빠르게 처리
  • 랜덤 액세스가 많은 건 네스티드 루프(Nested Loop) 조인임!

 

 

서브쿼리 유형 주요 특징 사용 위치 예시
INLINE VIEW 메인 쿼리보다 먼저 수행되어 결과 제공, 절차성 있음 FROM 절 FROM (SELECT ...)
SCALAR 단일값 반환, 절차성 없음 SELECT, WHERE 절 SELECT (SELECT MAX(급여) FRM 직원)
CORRELATED 메인 쿼리와 상호작용, 반복 실행 WHERE, HAVING 절 WHERE EXISTS (SELECT ...)
NESTED 일반적으로 조건을 위한 서브쿼리, 절차성 약함 WHERE, HAVING 절 WHERE 부서번호 IN (SELECT ...)

 

 

연산자 유형 핵심 특징 정리
UNION 집합 연산자 중복 제거 합집합 집합 연산자 O
UNION ALL 집합 연산자 중복 허용 합집합 집합 연산자 O
INTERSECT 집합 연산자 교집합 두 쿼리 결과의 공통 데이터만
EXCEPT 집합 연산자 차집합 첫 번째 결과에만 존재하는 데이터
PROJECT 관계 대수 연산자 컬럼 선택 집합 연산자 아님

 

 

 

 

  • Hash Join은 작은 테이블로 먼저 해시로 만들어
  • 등호(=) 만으로 연결해
  • 인덱스 없어도 돼
  • 메모리 부족하면 초과분은 디스크로

 

 

ChatGPT가 해설 이상하게 해 줘서 해설 안 적음.

 

 

 

 

728x90
반응형
LIST