🍏 개발일기/으쌰으쌰 SQLD 자격증 준비

노랭이 88P 부터 시작 78번 ~ 89번

보배 진 2026. 2. 11. 23:14

문제 78.

다음과 같은 2개의 릴레이션이 있다고 가정하자

student의 기본키는 st_num이고, department의 기본키는 dept_num이다.

또한 student의 d_num은 department의 dept_num을 참조하는 외래키이다

아래의 SQL문으로 실행 결과 건수는 

 

🍑 NOT EXISTS

NOT EXISTS는 서브쿼리 결과를 하나도 안 돌려줄 때 참이 되는 조건

서브쿼리 결과가 있으면 : FALSE

서브쿼리 결과가 없으면 : TRUE

SELECT 컬럼들
FROM 테이블1
WHERE NOT EXISTS (
	SELECT 1
    FROM 테이블2
    WHERE 테이블2.조건 = 테이블1.조건
);

그래서 조건1과 조건2를 만족하면 결과가 생기는데 그러면 NOT_EXISTS를 만나 FALSE가 되므로 정답은 5이다

 

 

 


 

문제 79.

SQL  Server 다음 중 아래의 SQL과 동일한 결과를 추출하는 SQL은?

단, 테이블 TAB1, TAB2의 PK 컬럼은 A, B이다

🍑EXCEPT란?

두 쿼리 결과에서 첫 번째 쿼리에만 있는 값만 가져오는 것

즉, A에는 있는데 B에는 없는 것만 뽑는다

NOT EXIST랑 비슷한 느낌이지만,

두 쿼리 결과를 비교해서 차집합을 만드는 연산

SELECT 컬럼들
FROM 테이블1
EXCEPT
SELECT 컬럼들
FROM 테이블2;

테이블1의 결과에서

테이블2의 결과와 겹치는 건 제외

남은 것만 보여줌

 

정답. 4번

 


문제 80.

아래와 같은 데이터 모델에 대해 SQL 연산을 수행하였다

다음 중 수행된 SQL과 동일한 결과를 도출하는 SQL은?

🍑 INTERSECT란?

두 쿼리 결과에서 공통으로 있는 값만 가져오는 것

즉, A에도 있고 B에도 있는 것만 뽑는다

집합으로 따지면 교집합이다

 

 

SELECT a.서비스id, b.서비스명, b.서비스url
FROM (
    SELECT 서비스id FROM 서비스
    INTERSECT
    SELECT 서비스id FROM 서비스이용
) a,
서비스 b
WHERE a.서비스id = b.서비스id;

🔼 쿼리 전체

 

 

SELECT 서비스id FROM 서비스
INTERSECT
SELECT 서비스id FROM 서비스이용

🔼 내부 서브쿼리 : INTERSECT

서비스 테이블에 있는 서비스ID와 

서비스 이용 테이블에 있는 서비스 ID를 비교

두 테이블에 모두 존재하는 서비스id만 뽑는다 (교집합)

즉, “사용자가 실제로 이용한 서비스” id 목록만 가져오는 것

 

 

FROM (...) a, 서비스 b
WHERE a.서비스id = b.서비스id;

🔼 a와 b를 조인

a : 교집합으로 나온 서비스 id

b : 서비스 테이블 전체

a와 b를 서비스id 기준으로 연결(join)

결과: 실제 이용한 서비스의 이름, URL까지 가져옴

 

그래서 이 명령어는 "사용자가 이용한 서비스의 id, 이름, URL을 보여준다"

정답 : 2

 


문제 81.

SET OPERATOR 중에서 수학의 교집합과 같은 기능을 하는 연산자로 가장 적절한 것은?

1. UNION

2. INTERSECT

3. MINUS

4. except

 

순서대로

1. 합집합

2. 교집합

3. 차집합

4. 차집합

이므로 정답은 2번

 

 


문제 82.

다음중 아래의 EMP 테이블의 데이터를 참조하여

실행한 SQL의 결과로 가장 적절한 것은?

🍑 UNION ALL이란?

두 개 이상의 쿼리 결과를 합치는 것

UNION과 비슷하지만 차이점이 있다

UNION : 중복된 행은 하나로 합침

UNION ALL : 중복도 그대로 포함

 

🍑 ORDER BY 1, 2

SELECT 절에서 첫 번째 컬럼 기준으로 정렬

SELECT 절에서 두 번째 컬럼 기준으로 정렬

 

그래서 정답은 2번

 


 

문제 83.

다음중 아래 TBL1, TBL2 테이블에 대해 sql 을 수행한 결과인 것은?

순서대로 풀어보면

1에서 공통된거 제외하면 전부 하나씩 출력된다

COL1, COL2를 출력하고 COUNT는 전부 1로

정답은 1번

 

 


 

문제 84.

다음중  아래에서 테이블 T1, T2에 대한

가, 나 두 개의 쿼리 결과 조회되는 행의 수로 가장 적절한 것은?

 

UNION ALL 은 중복까지 전부 다,

UNION은 중복은 한번만 출력하기 때문에

가. 5, 나.3

정답은 1번

 


문제 85.

다음 중 아래와 같은 집합이 존재할 때,

집합 A와 B에 대하여 집합 연산을 수행한 결과 집합 c가 되는 경우

이용되는 집합 연산은?

 

정답은 3번

 


 

문제 86.

아래와 같은 데이터 모델에 대한 설명으로 가장 적절한 것은?

단, 시스템적으로 회원기본정보와 회원상세정보는 1:1

양쪽 필수 관계임을 보장한다

 


🍑 EXCEPT란?

두 쿼리를 비교해서 첫 번째 쿼리에는 있고

두 번째 쿼리에는 없는 값만 가져오는 것

 

 

문제 풀이 팁 : 문제에 나와있는 단.. 부분을 잘 읽어야 한다

정답은 3번

 


 

문제 87.

아래와 같은 데이터 상황에서 아래의 sql을 수행할 경우

정렬 순서상 2번째 표시될 값을 적으시오

 

C1 C2 C3
1 NULL A
2 1 B
3 1 C
4 2 D

 

SELECT C3
FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC;

💠START WITH C2 IS NULL

계층 구조에서 루트(최상위) 노드를 지정

여기서는 C2가 NULL인 행을 루트로 시작

 

💠CONNECT BY PRIOR C1 = C2

계층 관계 정의

PRIOR C1 = C2

부모(C1)가 자식(C2)과 연결된다

즉, C2 값이 C1 값을 참조하면 그 행이 자식 노드

 

💠 ORDER SIBLINGS BY C3 DESC

같은 부모를 가진 형제 노드끼리 정렬

여기서는 C3 기준으로 내림차순 정렬

루트부터 시작해 각 계층별 형제끼리만 정렬

 

 

쉽게

루트 노드부터 시작해서, 부모-자식 관계로 내려가며
형제 노드는 C3 기준으로 내림차순 정렬해서 보여줘~~임

 

정답 3

 


문제 88.

다음중 Oracle 계층형 질의에 대한 설명으로 가장 부적절한 것은?

1. START WITH절은 계층 구조의 시작점을 지정하는 구문이다

2. ORDER SIBLINGS BY 절은 형제 노드 사이에서 정렬을 지정하는 구문이다

3. 순방향전개란 부모 노드로부터 자식 노드 방향으로 전개하는 것을 말한다

4. 루트 노드의 LEVEL 값은 0이다

 

정답 4.

이유 ORACLE  계층형 질의에서 루트 노드의 LEVEL 값은 1이다

 


 

문제 89.

다음중 아래와 같은 사원 테이블에 대해서 SQL을 수행하였을 때의 결과로 가장 적절한 것은?

 

CONNECT BY 절에 작성된 조건절은 WHERE 절에 작성된 조건절과 다르다

START WITH 절에서 필터링된 시작 데이터는 결과목록에 포함되어지며,

이후 CONNECT BY 절에 의해 필터링 된다

그러므로 매니저 사원번호가 NULL인 데이터는 결과목록에 포함되며

이후 리커시브 조인에 의해 입사일자가 필터링된다

 

정답 1번