SQLD시험일 2024년 3월 9일· 50문항전문가 검수

[SQLD] 2024년 52회 기출 복원

SQL 개발자 자격증 2024년 52회 기출 복원 50문항. 정답·해설을 펼쳐보고 직접 풀어볼 수도 있습니다.

안녕하세요. 문어입니다 🐙


SQL 개발자 자격증 2024년 52회차 기출 복원입니다. 각 문제 아래의 「정답·해설 보기」를 펼치면 정답과 해설이 나타나요. 실제 시험 환경(타이머·자동 채점·오답 누적)에서 풀어보고 싶다면 글 맨 아래 「직접 풀러가기」를 눌러주세요.

  1. 문제 1

    4지선다

    독립적인 단일 주식별자 없이도 관계 참여 엔터티의 식별자 조합으로 식별될 수 있는 예외적 엔터티로 가장 적절한 것은?

    • 1.기본 엔터티
    • 2.중심 엔터티
    • 3.행위 엔터티
    • 4.관계 엔터티
    정답·해설 보기

    정답

    4. 관계 엔터티

    해설

    정답: 4. 관계 엔터티는 두 엔터티 사이의 관계를 표현하기 위해 도출되는 경우가 있어, 독립적인 단일 주식별자 대신 관계 참여 엔터티의 식별자 조합으로 식별될 수 있다.

    오답 풀이

    • 1번: 기본 엔터티는 업무에 원래 존재하는 정보로 고유 식별자가 필요하다.
    • 2번: 중심 엔터티도 업무 중심 데이터를 식별해야 하므로 주식별자가 필요하다.
    • 3번: 행위 엔터티는 일반적으로 발생 행위를 식별하기 위한 식별자가 필요하다.
    • 4번: 관계를 표현하는 엔터티는 관계 자체가 식별 의미를 가질 수 있다.

    보충 개념 엔터티는 일반적으로 각 인스턴스를 구분할 수 있는 식별자가 필요하다. 다만 관계 엔터티는 별도의 단일 식별자를 두지 않고 부모 엔터티의 식별자를 조합한 복합 식별자로 설계될 수 있다.

  2. 문제 2

    4지선다

    다음 학생 데이터 모델에서 학과 정보 관리 방식으로 가장 적절한 것은?

    <상황> 학생 엔터티에 학과명, 학과사무실, 학과전화번호가 함께 저장되어 있고, 여러 학생이 동일한 학과 정보를 반복해서 가진다.

    • 1.학생 엔터티에서 학과 관련 속성을 분리하여 학과 엔터티를 별도로 둔다.
    • 2.학생 엔터티에 학과명, 학과사무실, 학과전화번호를 계속 중복 저장한다.
    • 3.학과명을 삭제하고 학생명만으로 학과를 판단한다.
    • 4.학과 정보를 학생별로 서로 다르게 입력할 수 있도록 자유 텍스트로 둔다.
    정답·해설 보기

    정답

    1. 학생 엔터티에서 학과 관련 속성을 분리하여 학과 엔터티를 별도로 둔다.

    해설

    정답: 1. 여러 학생이 동일한 학과 정보를 반복해서 가지면 학과 엔터티로 분리하여 중복과 이상 현상을 줄이는 것이 적절하다.

    오답 풀이

    • 1번: 학과 정보를 별도 엔터티로 분리하면 중복과 수정 이상을 줄일 수 있다.
    • 2번: 같은 학과 정보가 반복 저장되어 데이터 불일치가 발생할 수 있다.
    • 3번: 학과명 자체를 삭제하면 필요한 업무 정보를 잃는다.
    • 4번: 자유 텍스트는 표준화와 참조 무결성 유지가 어렵다.

    보충 개념 반복 저장되는 속성 집합이 독립적인 의미를 가지면 별도 엔터티로 분리하는 것이 좋다. 학생과 학과는 보통 학과 1개에 여러 학생이 소속되는 1:N 관계로 모델링한다.

  3. 문제 3

    4지선다

    다음 설명에 해당하는 스키마로 가장 적절한 것은?

    <설명> 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현이다.

    • 1.외부 스키마
    • 2.개념 스키마
    • 3.내부 스키마
    • 4.서브 스키마
    정답·해설 보기

    정답

    2. 개념 스키마

    해설

    정답: 2. 개념 스키마는 모든 사용자 관점을 통합한 데이터베이스 전체의 논리적 구조를 표현한다.

    오답 풀이

    • 1번: 외부 스키마는 사용자나 응용 프로그램별 관점이다.
    • 2번: 조직 전체의 통합 관점을 나타내므로 정답이다.
    • 3번: 내부 스키마는 물리적 저장 구조를 표현한다.
    • 4번: 서브 스키마는 외부 스키마와 유사한 사용자 관점의 부분 스키마를 의미한다.

    보충 개념 3단계 스키마 구조는 외부, 개념, 내부 스키마로 구분된다. 개념 스키마는 데이터베이스 전체의 논리적 구조와 제약조건을 정의한다.

  4. 문제 4

    4지선다

    개념적 데이터 모델링에 대한 설명으로 적절하지 않은 것은?

    • 1.업무 중심의 핵심 엔터티와 관계를 도출한다.
    • 2.DBMS나 물리적 저장 구조에 독립적으로 모델링한다.
    • 3.추상화 수준이 높아 업무의 전체 구조를 파악하는 데 사용된다.
    • 4.추상화 단계가 높아 상위 수준의 업무 구조 파악이 어렵다.
    정답·해설 보기

    정답

    4. 추상화 단계가 높아 상위 수준의 업무 구조 파악이 어렵다.

    해설

    정답: 4. 개념적 모델링은 추상화 수준이 높기 때문에 오히려 업무의 전체 구조를 파악하는 데 적합하다.

    오답 풀이

    • 1번: 개념적 모델링의 목적이다.
    • 2번: 개념적 모델은 특정 DBMS나 저장 구조에 독립적이다.
    • 3번: 상위 수준의 업무 구조 파악에 적합하다.
    • 4번: 추상화 수준이 높아 상위 파악이 어렵다는 설명은 부적절하다.

    보충 개념 개념적 모델링은 현실 업무를 엔터티, 속성, 관계 중심으로 추상화하는 단계이다. 이후 논리 모델링, 물리 모델링으로 구체화된다.

  5. 문제 5

    4지선다

    다른 엔터티의 부모 엔터티가 될 수 있는 엔터티 유형으로 가장 적절한 것은?

    • 1.기본 엔터티
    • 2.관계 엔터티
    • 3.코드 엔터티
    • 4.집계 엔터티
    정답·해설 보기

    정답

    1. 기본 엔터티

    해설

    정답: 1. 기본 엔터티는 업무에 원래 존재하는 독립적인 정보로, 다른 엔터티의 부모 역할을 할 수 있다.

    오답 풀이

    • 1번: 기본 엔터티는 독립적으로 생성되며 다른 엔터티의 부모가 될 수 있다.
    • 2번: 관계 엔터티는 관계를 해소하거나 표현하기 위해 도출되는 경우가 많다.
    • 3번: 코드 엔터티는 분류나 기준값 관리에 사용된다.
    • 4번: 집계 엔터티는 요약 데이터 관리 목적에 가깝다.

    보충 개념 기본 엔터티는 업무의 원천 정보로 독립적인 주식별자를 가진다. 예를 들어 고객, 상품, 부서 등이 기본 엔터티가 될 수 있다.

  6. 문제 6

    4지선다

    다음 데이터 모델링 구성 요소의 관계를 올바르게 표현한 것은?

    <조건>

    • 하나의 엔터티는 두 개 이상의 인스턴스를 가질 수 있다.
    • 하나의 인스턴스는 두 개 이상의 속성을 가질 수 있다.
    • 하나의 속성은 하나의 속성값을 가진다.
    • 1.엔터티와 인스턴스는 1:1, 인스턴스와 속성은 1:1, 속성과 속성값은 1:M이다.
    • 2.엔터티와 인스턴스는 M:1, 인스턴스와 속성은 M:1, 속성과 속성값은 M:N이다.
    • 3.엔터티와 인스턴스는 1:M, 인스턴스와 속성은 1:M, 속성과 속성값은 1:M이다.
    • 4.엔터티와 인스턴스는 1:M, 인스턴스와 속성은 1:M, 속성과 속성값은 1:1이다.
    정답·해설 보기

    정답

    4. 엔터티와 인스턴스는 1:M, 인스턴스와 속성은 1:M, 속성과 속성값은 1:1이다.

    해설

    정답: 4. 엔터티는 여러 인스턴스를 가지며, 인스턴스는 여러 속성을 가지고, 각 속성은 하나의 속성값을 가진다.

    오답 풀이

    • 1번: 엔터티와 인스턴스, 인스턴스와 속성의 관계가 너무 제한적이다.
    • 2번: 방향과 관계 수가 부적절하다.
    • 3번: 속성과 속성값의 관계를 1:M으로 본 점이 부적절하다.
    • 4번: 제시된 조건에 가장 적절하다.

    보충 개념 엔터티는 관리 대상의 집합, 인스턴스는 개별 사례, 속성은 인스턴스를 설명하는 항목이다. 속성값은 특정 인스턴스의 특정 속성에 들어가는 실제 값이다.

  7. 문제 7

    4지선다

    식별자 분류에 대한 설명으로 적절하지 않은 것은?

    • 1.내부 식별자는 엔터티 내부에서 스스로 생성된 식별자이다.
    • 2.외부 식별자는 다른 엔터티와의 관계를 통해 전달받은 식별자이다.
    • 3.외래키(FK)는 일반적으로 외부 식별자에 해당한다.
    • 4.외래키(FK)는 항상 내부 식별자이다.
    정답·해설 보기

    정답

    4. 외래키(FK)는 항상 내부 식별자이다.

    해설

    정답: 4. 외래키는 다른 엔터티로부터 전달받은 속성이므로 내부 식별자가 아니라 외부 식별자로 보는 것이 일반적이다.

    오답 풀이

    • 1번: 내부 식별자의 설명이다.
    • 2번: 외부 식별자의 설명이다.
    • 3번: 외래키는 관계를 통해 전달받은 식별자에 해당한다.
    • 4번: 외래키를 항상 내부 식별자라고 한 설명은 틀리다.

    보충 개념 식별자는 생성 위치에 따라 내부 식별자와 외부 식별자로 구분할 수 있다. FK는 부모 엔터티와의 관계를 통해 전달받는 경우가 많다.

  8. 문제 8

    4지선다

    식별 관계와 비식별 관계에 대한 설명으로 가장 적절한 것은?

    • 1.식별 관계는 점선, 비식별 관계는 실선으로 표현한다.
    • 2.식별 관계와 비식별 관계는 모두 점선으로만 표현한다.
    • 3.식별 관계는 실선, 비식별 관계는 점선으로 표현한다.
    • 4.식별 관계와 비식별 관계는 모두 실선으로만 표현한다.
    정답·해설 보기

    정답

    3. 식별 관계는 실선, 비식별 관계는 점선으로 표현한다.

    해설

    정답: 3. ERD 표기에서 식별 관계는 실선, 비식별 관계는 점선으로 표현한다.

    오답 풀이

    • 1번: 식별 관계와 비식별 관계의 표기가 반대이다.
    • 2번: 둘을 모두 점선으로 표현하지 않는다.
    • 3번: 식별 관계와 비식별 관계의 표기가 올바르다.
    • 4번: 둘을 모두 실선으로 표현하지 않는다.

    보충 개념 식별 관계에서는 부모 식별자가 자식의 주식별자에 포함된다. 비식별 관계에서는 부모 식별자가 자식의 일반 속성 또는 외래키로만 포함된다.

  9. 문제 9

    4지선다

    교수-과목, 학생-과목 사이에 각각 다대다 관계가 존재한다고 할 때, 정규화 및 관계 해소 후 추가로 생성되는 관계 엔터티 수로 가장 적절한 것은?

    • 1.0개
    • 2.1개
    • 3.2개
    • 4.3개
    정답·해설 보기

    정답

    3. 2개

    해설

    정답: 3. 교수-과목, 학생-과목처럼 M:N 관계가 두 개 존재하면 이를 해소하기 위한 관계 엔터티가 2개 추가될 수 있다.

    오답 풀이

    • 1번: M:N 관계 해소가 필요하므로 추가 엔터티가 없다는 설명은 부적절하다.
    • 2번: M:N 관계가 두 개라면 하나만으로 부족할 수 있다.
    • 3번: 두 개의 관계 엔터티가 추가되는 경우에 해당한다.
    • 4번: 제시된 관계 수보다 과도하게 추가한 값이다.

    보충 개념 M:N 관계는 관계형 모델에서 직접 구현하기 어렵기 때문에 교차 엔터티로 해소한다. 예를 들어 수강, 강의배정 같은 엔터티가 추가될 수 있다.

  10. 문제 10

    4지선다

    정규화에 대한 설명으로 적절하지 않은 것은?

    • 1.제3정규형은 제1정규형과 제2정규형을 만족하지 않아도 된다.
    • 2.제1정규형은 속성의 원자성을 만족해야 한다.
    • 3.제2정규형은 부분 함수 종속을 제거한다.
    • 4.제3정규형은 이행 함수 종속을 제거한다.
    정답·해설 보기

    정답

    1. 제3정규형은 제1정규형과 제2정규형을 만족하지 않아도 된다.

    해설

    정답: 1. 제3정규형은 제1정규형과 제2정규형을 만족한 상태에서 이행 함수 종속을 제거해야 한다.

    오답 풀이

    • 1번: 제3정규형이 하위 정규형을 만족하지 않아도 된다는 설명은 틀리다.
    • 2번: 제1정규형의 설명이다.
    • 3번: 제2정규형의 설명이다.
    • 4번: 제3정규형의 설명이다.

    보충 개념 정규화는 단계적으로 진행된다. 일반적으로 제2정규형은 제1정규형을 만족해야 하고, 제3정규형은 제2정규형을 만족해야 한다.

  11. 문제 11

    4지선다

    다음 조건식의 결과로 조회되는 값으로 가장 적절한 것은?

    <데이터>

    COL1COL2RESULT
    1NULLA
    2NULLB
    NULL3C
    NULL4D
    SQL
    SELECT RESULT FROM T WHERE NOT (COL1 = 1 OR COL2 = NULL);
    • 1.A
    • 2.B
    • 3.C
    • 4.조회 결과 없음
    정답·해설 보기

    정답

    4. 조회 결과 없음

    해설

    정답: 4. COL2 = NULL은 TRUE가 아니라 UNKNOWN이다. WHERE 절은 조건 결과가 TRUE인 행만 반환하며 FALSE와 UNKNOWN은 제외된다.

    행별 판단

    • A: COL1 = 1은 TRUE, COL2 = NULL은 UNKNOWN → TRUE OR UNKNOWN = TRUE → NOT TRUE = FALSE이므로 제외된다.
    • B: COL1 = 1은 FALSE, COL2 = NULL은 UNKNOWN → FALSE OR UNKNOWN = UNKNOWN → NOT UNKNOWN = UNKNOWN이므로 제외된다.
    • C: COL1 = 1은 UNKNOWN, COL2 = NULL은 UNKNOWN → UNKNOWN OR UNKNOWN = UNKNOWN → NOT UNKNOWN = UNKNOWN이므로 제외된다.
    • D: COL1 = 1은 UNKNOWN, COL2 = NULL은 UNKNOWN → UNKNOWN OR UNKNOWN = UNKNOWN → NOT UNKNOWN = UNKNOWN이므로 제외된다.

    보충 개념 SQL에서 NULL은 = 연산자로 비교할 수 없고 IS NULL을 사용해야 한다. WHERE 절에서는 TRUE인 행만 조회된다.

  12. 문제 12

    4지선다

    다음 중 결과가 다른 것은?

    <조건> 값과 옵션이 서로 다를 수 있으며, NULL 처리 함수의 결과를 비교한다.

    • 1.NVL(값, 옵션)
    • 2.COALESCE(값, 옵션)
    • 3.NULLIF(값, 옵션)
    • 4.CASE WHEN 값 IS NOT NULL THEN 값 ELSE 옵션 END
    정답·해설 보기

    정답

    3. NULLIF(값, 옵션)

    해설

    정답: 3. NVL, COALESCE, CASE 표현식은 값이 NULL이면 옵션을 반환하고 아니면 값을 반환하는 형태로 유사하지만, NULLIF는 두 값이 같으면 NULL을 반환한다.

    오답 풀이

    • 1번: 값이 NULL이면 옵션을 반환한다.
    • 2번: 인자 중 첫 번째 NULL이 아닌 값을 반환한다.
    • 3번: 값과 옵션이 같으면 NULL을 반환하므로 다른 함수들과 성격이 다르다.
    • 4번: NVL과 유사한 NULL 대체 로직이다.

    보충 개념 NVL(expr1, expr2)는 expr1이 NULL이면 expr2를 반환한다. NULLIF(expr1, expr2)는 두 값이 같으면 NULL, 다르면 expr1을 반환한다.

  13. 문제 13

    4지선다

    다음 윈도우 함수의 결과로 가장 적절한 것은?

    <데이터>

    GRPVAL
    A1
    A3
    A5
    A7
    B2
    B4
    SQL
    SELECT GRP, VAL, SUM(VAL) OVER( PARTITION BY GRP ORDER BY VAL RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING ) AS SUM_VAL FROM T;
    • 1.A: 1,3,5,7 / B: 2,4
    • 2.A: 4,8,12,12 / B: 2,4
    • 3.A: 4,9,15,12 / B: 6,6
    • 4.A: 16,16,16,16 / B: 6,6
    정답·해설 보기

    정답

    3. A: 4,9,15,12 / B: 6,6

    해설

    정답: 3. RANGE 2 PRECEDING AND 2 FOLLOWING은 현재 VAL 기준으로 -2부터 +2 사이의 값을 합산한다.

    오답 풀이

    • 1번: 원본 값을 그대로 나열한 값이다.
    • 2번: 일부 프레임 합산이 잘못되었다.
    • 3번: A 그룹은 1→1+3=4, 3→1+3+5=9, 5→3+5+7=15, 7→5+7=12이고 B 그룹은 각각 2+4=6이다.
    • 4번: 전체 파티션 합계를 모든 행에 표시한 결과이다.

    보충 개념 RANGE 프레임은 물리적인 행 개수가 아니라 ORDER BY 값의 범위를 기준으로 윈도우를 계산한다.

  14. 문제 14

    4지선다

    계층형 질의에서 사원에서 관리자 방향으로 역방향 탐색을 수행하려고 한다. 다음 중 PRIOR가 들어갈 위치로 가장 적절한 것은?

    SQL
    SELECT EMPNO, MGR FROM EMP START WITH EMPNO = 7788 CONNECT BY EMPNO = PRIOR MGR;
    • 1.EMPNO 앞
    • 2.MGR 앞
    • 3.START WITH 앞
    • 4.SELECT 앞
    정답·해설 보기

    정답

    2. MGR 앞

    해설

    정답: 2. CONNECT BY EMPNO = PRIOR MGR 형태는 현재 행의 EMPNO가 이전 행의 MGR과 같은 상위 방향 탐색에 사용된다.

    오답 풀이

    • 1번: EMPNO 앞에 PRIOR를 두면 하위 방향 탐색 조건이 될 수 있다.
    • 2번: 관리자 방향으로 올라가는 조건에 적절하다.
    • 3번: START WITH 앞에 PRIOR를 두지 않는다.
    • 4번: SELECT 앞에 PRIOR를 두지 않는다.

    보충 개념 CONNECT BY에서 PRIOR의 위치는 계층 탐색 방향을 결정한다. 부모에서 자식으로 내려갈 때와 자식에서 부모로 올라갈 때 조건식이 달라진다.

  15. 문제 15

    4지선다

    다음 중 NVL을 사용하여 금액 컬럼의 NULL을 0으로 대체한 뒤 합계를 구하는 SQL로 가장 적절한 것은?

    • 1.SELECT SUM(금액) FROM 매출
    • 2.SELECT NVL(SUM(금액), 금액) FROM 매출
    • 3.SELECT SUM(NVL(금액, 0)) FROM 매출
    • 4.SELECT NVL(금액, SUM(0)) FROM 매출
    정답·해설 보기

    정답

    3. SELECT SUM(NVL(금액, 0)) FROM 매출

    해설

    정답: 3. 개별 금액 값이 NULL이면 0으로 바꾼 뒤 합산하려면 SUM(NVL(금액, 0))을 사용한다.

    오답 풀이

    • 1번: SUM은 NULL을 제외하지만 NULL을 0으로 대체한 행별 계산은 아니다.
    • 2번: SUM 결과가 NULL일 때 금액으로 대체하는 잘못된 형태이다.
    • 3번: 각 행의 NULL 금액을 0으로 대체한 뒤 합산한다.
    • 4번: 일반 컬럼과 집계 함수를 잘못 혼용했다.

    보충 개념 NVL(expr1, expr2)는 expr1이 NULL이면 expr2를 반환한다. 행별 NULL 대체 후 집계하려면 집계 함수 내부에 NVL을 넣는다.

  16. 문제 16

    4지선다

    Oracle 계층형 질의에서 순방향과 역방향 탐색을 결정하는 핵심 키워드는?

    • 1.START WITH
    • 2.PRIOR
    • 3.ORDER BY
    • 4.GROUP BY
    정답·해설 보기

    정답

    2. PRIOR

    해설

    정답: 2. 계층형 질의에서 PRIOR의 위치에 따라 부모에서 자식으로 탐색할지, 자식에서 부모로 탐색할지가 결정된다.

    오답 풀이

    • 1번: START WITH는 시작 노드를 지정한다.
    • 2번: PRIOR는 계층 탐색 방향을 결정하는 핵심 키워드이다.
    • 3번: ORDER BY는 결과 정렬과 관련된다.
    • 4번: GROUP BY는 그룹 집계와 관련된다.

    보충 개념 CONNECT BY PRIOR 부모컬럼 = 자식컬럼은 하위 방향 탐색에 자주 사용된다. PRIOR 위치가 바뀌면 역방향 탐색이 된다.

  17. 문제 17

    4지선다

    트랜잭션이 동시에 실행될 경우 다른 트랜잭션에 의해 영향을 받지 않고 독립적으로 실행되어야 한다는 성질은?

    • 1.원자성
    • 2.일관성
    • 3.고립성
    • 4.지속성
    정답·해설 보기

    정답

    3. 고립성

    해설

    정답: 3. 고립성은 동시에 실행되는 트랜잭션들이 서로 영향을 주지 않고 독립적으로 수행되어야 한다는 성질이다.

    오답 풀이

    • 1번: 원자성은 모두 수행되거나 모두 취소되어야 하는 성질이다.
    • 2번: 일관성은 트랜잭션 전후 데이터가 일관된 상태를 유지해야 하는 성질이다.
    • 3번: 동시 실행 트랜잭션 간 독립성과 관련된다.
    • 4번: 지속성은 커밋 결과가 영구히 보존되는 성질이다.

    보충 개념 트랜잭션의 ACID는 원자성, 일관성, 고립성, 지속성이다. 동시성 제어는 주로 고립성을 보장하기 위한 기술이다.

  18. 문제 18

    4지선다

    서브쿼리에 대한 설명 중 적절하지 않은 것은?

    • 1.서브쿼리는 메인쿼리 안에 포함된 SELECT 문이다.
    • 2.서브쿼리에서는 메인쿼리의 컬럼을 참조할 수 있는 경우가 있다.
    • 3.메인쿼리에서는 서브쿼리 내부 테이블의 컬럼을 직접 사용할 수 있다.
    • 4.서브쿼리는 단일행, 다중행, 다중컬럼 서브쿼리 등으로 구분할 수 있다.
    정답·해설 보기

    정답

    3. 메인쿼리에서는 서브쿼리 내부 테이블의 컬럼을 직접 사용할 수 있다.

    해설

    정답: 3. 메인쿼리는 서브쿼리 내부에서만 정의된 테이블의 컬럼을 직접 사용할 수 없다.

    오답 풀이

    • 1번: 서브쿼리의 기본 설명이다.
    • 2번: 상관 서브쿼리에서는 서브쿼리가 메인쿼리 컬럼을 참조할 수 있다.
    • 3번: 서브쿼리 내부 테이블의 컬럼은 메인쿼리에서 직접 사용할 수 없다.
    • 4번: 서브쿼리는 반환 행 수와 컬럼 수에 따라 분류할 수 있다.

    보충 개념 조인은 참여 테이블이 같은 쿼리 블록에 있어 컬럼 참조가 가능하다. 반면 서브쿼리의 내부 범위는 메인쿼리와 구분된다.

  19. 문제 19

    4지선다

    순위 결과가 1, 2, 2, 3처럼 공동 순위 이후에도 순위가 연속되도록 하려면 어떤 함수를 사용해야 하는가?

    • 1.RANK
    • 2.DENSE_RANK
    • 3.ROW_NUMBER
    • 4.NTILE
    정답·해설 보기

    정답

    2. DENSE_RANK

    해설

    정답: 2. DENSE_RANK는 공동 순위가 있어도 다음 순위를 건너뛰지 않는다.

    오답 풀이

    • 1번: RANK는 1, 2, 2, 4처럼 다음 순위를 건너뛴다.
    • 2번: DENSE_RANK는 1, 2, 2, 3처럼 연속 순위를 반환한다.
    • 3번: ROW_NUMBER는 같은 값에도 서로 다른 번호를 부여한다.
    • 4번: NTILE은 데이터를 지정한 버킷 수로 나누는 함수이다.

    보충 개념 순위 함수의 차이는 공동 순위 처리 방식에서 자주 출제된다. RANK, DENSE_RANK, ROW_NUMBER를 구분해야 한다.

  20. 문제 20

    4지선다

    SQL 명령어와 명령어 유형의 연결 중 적절하지 않은 것은?

    • 1.CREATE - DDL
    • 2.INSERT - DCL
    • 3.REVOKE - DCL
    • 4.COMMIT - TCL
    정답·해설 보기

    정답

    2. INSERT - DCL

    해설

    정답: 2. INSERT는 데이터를 삽입하는 DML이지 DCL이 아니다.

    오답 풀이

    • 1번: CREATE는 객체 생성 명령으로 DDL이다.
    • 2번: INSERT는 DML이므로 DCL이라고 한 설명은 틀리다.
    • 3번: REVOKE는 권한 회수 명령으로 DCL이다.
    • 4번: COMMIT은 트랜잭션 제어 명령으로 TCL이다.

    보충 개념 DDL은 데이터 정의, DML은 데이터 조작, DCL은 권한 제어, TCL은 트랜잭션 제어 명령을 의미한다.

  21. 문제 21

    4지선다

    차집합 연산으로 가장 적절한 것은?

    • 1.UNION
    • 2.UNION ALL
    • 3.INTERSECT
    • 4.MINUS
    정답·해설 보기

    정답

    4. MINUS

    해설

    정답: 4. Oracle에서 차집합 연산은 MINUS를 사용한다.

    오답 풀이

    • 1번: UNION은 합집합이다.
    • 2번: UNION ALL은 중복을 포함한 합집합이다.
    • 3번: INTERSECT는 교집합이다.
    • 4번: MINUS는 첫 번째 SELECT 결과에서 두 번째 SELECT 결과에 포함된 행을 제외하는 차집합 연산이다.

    보충 개념 SQL 표준 및 일부 DBMS에서는 EXCEPT를 차집합으로 사용하지만, SQLD에서 자주 다루는 Oracle 기준 차집합 연산자는 MINUS이다.

  22. 문제 22

    4지선다

    세 번째 문자가 L인 단어를 찾는 LIKE 조건으로 가장 적절한 것은?

    • 1.LIKE 'L__%'
    • 2.LIKE '__L%'
    • 3.LIKE '%L__'
    • 4.LIKE '_L%'
    정답·해설 보기

    정답

    2. LIKE '__L%'

    해설

    정답: 2. _는 임의의 한 글자를 의미하므로 __L%는 첫 두 글자 뒤 세 번째 글자가 L인 문자열을 찾는다.

    오답 풀이

    • 1번: 첫 번째 문자가 L인 문자열을 찾는다.
    • 2번: 세 번째 문자가 L인 문자열을 찾는다.
    • 3번: 뒤쪽에 L이 포함되고 그 뒤에 두 글자가 이어지는 문자열을 찾는 형태이다.
    • 4번: 두 번째 문자가 L인 문자열을 찾는다.

    보충 개념 LIKE에서 %는 0개 이상의 임의 문자열, _는 정확히 한 글자를 의미한다. 위치 조건에는 _ 개수가 중요하다.

  23. 문제 23

    4지선다

    아래 쿼리의 결과값으로 가장 적절한 것은?

    C1C2C3
    123
    NULL23
    NULLNULL3
    SQL
    SELECT SUM(COALESCE(C1, C2, C3)) FROM TAB1;
    • 1.0
    • 2.1
    • 3.6
    • 4.14
    정답·해설 보기

    정답

    3. 6

    해설

    정답: 3. COALESCE는 첫 번째 NULL이 아닌 값을 반환하므로 각 행의 값은 1, 2, 3이고 합계는 6이다.

    오답 풀이

    • 1번: NULL을 모두 0으로 처리한 값이 아니다.
    • 2번: 첫 번째 행만 계산한 값이다.
    • 3번: 1 + 2 + 3 = 6으로 올바르다.
    • 4번: 모든 컬럼 값을 단순 합산한 값과 혼동한 것이다.

    보충 개념 COALESCE(expr1, expr2, ...)는 왼쪽부터 검사하여 첫 번째 NULL이 아닌 값을 반환한다. NVL보다 여러 인자를 처리할 수 있다.

  24. 문제 24

    4지선다

    다음 중 SELECT 문장의 논리적 실행 순서를 올바르게 나열한 것은?

    • 1.SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY
    • 2.FROM - SELECT - WHERE - GROUP BY - HAVING - ORDER BY
    • 3.FROM - WHERE - GROUP BY - HAVING - ORDER BY - SELECT
    • 4.FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
    정답·해설 보기

    정답

    4. FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

    해설

    정답: 4. SELECT 문의 논리적 처리 순서는 FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY 순서로 이해할 수 있다.

    오답 풀이

    • 1번: SELECT가 가장 먼저 수행된다고 보기 어렵다.
    • 2번: WHERE가 SELECT보다 먼저 처리된다.
    • 3번: ORDER BY는 SELECT 결과를 기준으로 정렬하므로 SELECT 이후로 보는 것이 일반적이다.
    • 4번: 논리적 실행 순서로 가장 적절하다.

    보충 개념 논리적 실행 순서를 이해하면 WHERE 절에서 SELECT 별칭을 사용할 수 없는 이유를 설명할 수 있다. ORDER BY에서는 SELECT 별칭 사용이 가능하다.

  25. 문제 25

    4지선다

    다음 중 집계 결과 A와 B가 서로 다른 값을 반환할 수 있는 것은?

    <조건> SAL 컬럼에는 서로 다른 급여 값이 존재한다.

    • 1.COUNT(SAL) AS A, COUNT(SAL) AS B
    • 2.SUM(SAL) AS A, SUM(SAL) AS B
    • 3.MAX(SAL) AS A, MIN(SAL) AS B
    • 4.AVG(SAL) AS A, AVG(SAL) AS B
    정답·해설 보기

    정답

    3. MAX(SAL) AS A, MIN(SAL) AS B

    해설

    정답: 3. SAL 컬럼에 서로 다른 값이 존재하면 일반적으로 MAX(SAL)과 MIN(SAL)은 서로 다른 집계 결과를 반환한다.

    오답 풀이

    • 1번: 같은 표현식이므로 A와 B가 같다.
    • 2번: 같은 표현식이므로 A와 B가 같다.
    • 3번: 최대값과 최소값은 서로 다른 값을 반환할 수 있다.
    • 4번: 같은 표현식이므로 A와 B가 같다.

    보충 개념 집계 함수는 그룹별 하나의 결과를 반환한다. MAX는 최댓값, MIN은 최솟값을 반환하므로 서로 다른 값이 존재하는 데이터에서는 두 결과가 달라질 수 있다.

  26. 문제 26

    4지선다

    제품, 생산제품, 생산라인 엔터티가 있을 때 제품과 생산라인을 생산제품 엔터티 없이 직접 조인하면 발생할 수 있는 문제로 가장 적절한 것은?

    • 1.카테시안 곱이 발생할 수 있다.
    • 2.항상 INNER JOIN 결과가 0건이 된다.
    • 3.기본키가 자동으로 생성된다.
    • 4.외래키 제약조건이 자동으로 삭제된다.
    정답·해설 보기

    정답

    1. 카테시안 곱이 발생할 수 있다.

    해설

    정답: 1. 제품과 생산라인 사이의 관계 엔터티를 거치지 않고 직접 조인하면 조인 조건이 부정확해져 카테시안 곱이 발생할 수 있다.

    오답 풀이

    • 1번: 관계 조건이 없거나 부적절하면 모든 조합이 생성될 수 있다.
    • 2번: 항상 0건이 되는 것은 아니다.
    • 3번: 조인으로 기본키가 자동 생성되지 않는다.
    • 4번: 조인으로 외래키 제약조건이 삭제되지 않는다.

    보충 개념 M:N 관계는 교차 엔터티를 통해 해소한다. 직접 관련 없는 테이블을 조인하면 불필요한 조합이 생성되어 결과가 부풀려질 수 있다.

  27. 문제 27

    4지선다

    회원 테이블과 주문이력 테이블이 있을 때, 주문을 한 번도 하지 않은 회원을 찾는 SQL로 가장 적절한 것은?

    • 1.SELECT * FROM 회원 M WHERE EXISTS (SELECT 1 FROM 주문 O WHERE M.회원ID = O.회원ID)
    • 2.SELECT * FROM 회원 M WHERE M.회원ID IN (SELECT 회원ID FROM 주문)
    • 3.SELECT * FROM 회원 M WHERE NOT EXISTS (SELECT 1 FROM 주문 O WHERE M.회원ID = O.회원ID)
    • 4.SELECT * FROM 회원 M, 주문 O WHERE M.회원ID = O.회원ID
    정답·해설 보기

    정답

    3. SELECT * FROM 회원 M WHERE NOT EXISTS (SELECT 1 FROM 주문 O WHERE M.회원ID = O.회원ID)

    해설

    정답: 3. 주문이 존재하지 않는 회원을 찾으려면 NOT EXISTS를 사용하여 해당 회원의 주문 이력이 없는 경우를 조회한다.

    오답 풀이

    • 1번: 주문한 회원을 찾는다.
    • 2번: 주문한 회원을 찾는다.
    • 3번: 주문 이력이 없는 회원을 찾는다.
    • 4번: 회원과 주문을 조인하므로 주문한 회원만 조회된다.

    보충 개념 미존재 데이터를 찾을 때는 NOT EXISTS가 자주 사용된다. NOT IN은 서브쿼리 결과에 NULL이 포함될 때 예상과 다른 결과가 나올 수 있다.

  28. 문제 28

    4지선다

    부모 테이블의 행 삭제 시 해당 행을 참조하는 자식 테이블의 행도 함께 삭제되도록 외래키를 생성하려고 한다. 적절한 옵션은?

    • 1.ON DELETE RESTRICT
    • 2.ON DELETE SET NULL
    • 3.ON DELETE CASCADE
    • 4.ON UPDATE CASCADE
    정답·해설 보기

    정답

    3. ON DELETE CASCADE

    해설

    정답: 3. ON DELETE CASCADE는 부모 행이 삭제될 때 이를 참조하는 자식 행도 함께 삭제되도록 한다.

    오답 풀이

    • 1번: RESTRICT는 자식 행이 있으면 부모 행 삭제를 제한한다.
    • 2번: SET NULL은 자식 외래키 값을 NULL로 변경한다.
    • 3번: 자식 행까지 함께 삭제하는 옵션이다.
    • 4번: 삭제가 아니라 갱신 전파와 관련된 표현이다.

    보충 개념 외래키 삭제 규칙에는 RESTRICT, CASCADE, SET NULL 등이 있다. 업무적으로 자식 데이터까지 삭제되어도 되는지 신중히 판단해야 한다.

  29. 문제 29

    4지선다

    ROLE에 대한 설명으로 옳은 것은?

    • 1.ROLE은 테이블 데이터를 저장하는 물리적 공간이다.
    • 2.ROLE은 GRANT로 부여하고 REVOKE로 회수할 수 있다.
    • 3.ROLE은 COMMIT으로 생성하고 ROLLBACK으로 삭제한다.
    • 4.ROLE은 SELECT 문에서만 사용할 수 있는 별칭이다.
    정답·해설 보기

    정답

    2. ROLE은 GRANT로 부여하고 REVOKE로 회수할 수 있다.

    해설

    정답: 2. ROLE은 여러 권한을 묶어 관리하는 객체이며 GRANT로 부여하고 REVOKE로 회수할 수 있다.

    오답 풀이

    • 1번: 물리적 저장 공간은 테이블스페이스 등에 해당한다.
    • 2번: ROLE 권한 부여와 회수 설명으로 옳다.
    • 3번: ROLE은 COMMIT/ROLLBACK으로 생성·삭제하지 않는다.
    • 4번: 별칭이 아니라 권한 관리 객체이다.

    보충 개념 ROLE을 사용하면 사용자별로 권한을 하나씩 부여하지 않고 권한 묶음을 관리할 수 있다. 권한 부여는 GRANT, 회수는 REVOKE를 사용한다.

  30. 문제 30

    4지선다

    CTAS(Create Table As Select)로 테이블을 복제할 때 제약조건 적용에 대한 설명으로 가장 적절한 것은?

    • 1.기본키(PK)는 복제되지 않는다.
    • 2.NOT NULL 조건은 절대 복제되지 않는다.
    • 3.CHECK 제약조건은 항상 복제된다.
    • 4.DEFAULT 값은 항상 복제된다.
    정답·해설 보기

    정답

    1. 기본키(PK)는 복제되지 않는다.

    해설

    정답: 1. CTAS로 테이블을 생성하면 일반적으로 기본키, 외래키, CHECK, DEFAULT 같은 제약조건은 복제되지 않고 일부 NOT NULL 속성만 유지될 수 있다.

    오답 풀이

    • 1번: PK는 CTAS로 자동 복제되지 않는다.
    • 2번: NOT NULL 속성은 일부 유지될 수 있다.
    • 3번: CHECK 제약조건은 일반적으로 복제되지 않는다.
    • 4번: DEFAULT 정의는 일반적으로 복제되지 않는다.

    보충 개념 CTAS는 조회 결과를 기반으로 새 테이블을 빠르게 생성하는 방식이다. 구조와 데이터는 복제되지만 제약조건, 인덱스, 트리거 등은 별도 생성이 필요할 수 있다.

  31. 문제 31

    4지선다

    급여가 2000 이상인 행만 합계에 포함하려고 한다. 조건에 맞지 않는 행은 NULL로 처리하여 SUM 집계에서 제외하는 표현으로 가장 적절한 것은?

    • 1.SUM(CASE WHEN SAL >= 2000 THEN SAL ELSE 0 END)
    • 2.SUM(CASE WHEN SAL >= 2000 THEN SAL ELSE NULL END)
    • 3.COUNT(CASE WHEN SAL >= 2000 THEN SAL ELSE NULL END)
    • 4.MAX(CASE WHEN SAL >= 2000 THEN NULL ELSE SAL END)
    정답·해설 보기

    정답

    2. SUM(CASE WHEN SAL >= 2000 THEN SAL ELSE NULL END)

    해설

    정답: 2. 조건에 맞는 급여만 합산하고 조건에 맞지 않는 값은 NULL로 처리하면 SUM에서 제외된다.

    오답 풀이

    • 1번: ELSE 0은 합계 결과는 비슷할 수 있으나 NULL 제외 개념을 묻는 문제 의도와 다르다.
    • 2번: 조건에 맞지 않는 행을 NULL로 처리해 집계에서 제외한다.
    • 3번: 합계가 아니라 건수를 센다.
    • 4번: 조건에 맞는 값을 NULL로 만들어 반대로 처리한다.

    보충 개념 집계 함수는 일반적으로 NULL을 제외한다. 조건부 집계에는 CASE WHEN과 SUM, COUNT를 함께 자주 사용한다.

  32. 문제 32

    4지선다

    다음 중 A 결과와 B 결과가 다른 것으로 가장 적절한 것은?

    • 1.A: UNION, B: DISTINCT를 사용한 UNION 결과
    • 2.A: INNER JOIN, B: 조인 조건을 WHERE 절에 작성한 등가 조인
    • 3.A: NOT EXISTS, B: NULL이 포함된 NOT IN
    • 4.A: COUNT(*), B: COUNT(1)
    정답·해설 보기

    정답

    3. A: NOT EXISTS, B: NULL이 포함된 NOT IN

    해설

    정답: 3. NOT EXISTS와 NOT IN은 서브쿼리 결과에 NULL이 포함될 때 결과가 달라질 수 있다.

    오답 풀이

    • 1번: UNION은 기본적으로 중복을 제거한다.
    • 2번: 같은 등가 조인 조건이라면 결과가 같을 수 있다.
    • 3번: NULL이 포함된 NOT IN은 UNKNOWN으로 인해 NOT EXISTS와 달라질 수 있다.
    • 4번: COUNT(*)와 COUNT(1)은 일반적으로 전체 행 수를 센다.

    보충 개념 NOT IN은 비교 목록에 NULL이 있으면 결과가 반환되지 않는 문제가 생길 수 있다. NULL 가능성이 있는 반집합 연산에는 NOT EXISTS가 안전한 경우가 많다.

  33. 문제 33

    4지선다

    SQL의 특징이 아닌 것은?

    • 1.절차적(procedural)
    • 2.구조적(structured)
    • 3.집합적(set-based)
    • 4.선언적(declarative)
    정답·해설 보기

    정답

    1. 절차적(procedural)

    해설

    정답: 1. SQL은 어떤 데이터를 원하는지 선언하는 비절차적 언어에 가깝다.

    오답 풀이

    • 1번: SQL은 절차적 언어가 아니라 비절차적·선언적 질의 언어이다.
    • 2번: SQL은 Structured Query Language로 구조화된 질의 언어이다.
    • 3번: SQL은 행 단위보다 집합 단위 처리를 지향한다.
    • 4번: SQL은 원하는 결과를 선언하는 방식이다.

    보충 개념 SQL은 데이터 처리 절차를 상세히 명령하기보다 원하는 결과를 표현한다. DBMS 옵티마이저가 실행 계획을 결정한다.

  34. 문제 34

    4지선다

    다음 집합 연산 결과로 가장 적절한 것은?

    SQL
    SELECT MAX(SAL) FROM EMP UNION SELECT MIN(SAL) FROM EMP;

    <조건> EMP 테이블의 최대 급여는 9000, 최소 급여는 8925이며 두 값은 서로 다르다.

    • 1.9000
    • 2.8925
    • 3.9000, 8925
    • 4.NULL
    정답·해설 보기

    정답

    3. 9000, 8925

    해설

    정답: 3. UNION은 두 SELECT 결과를 합치고 중복을 제거하므로 최대 급여 9000과 최소 급여 8925가 모두 출력된다.

    오답 풀이

    • 1번: MAX 결과만 포함한 값이다.
    • 2번: MIN 결과만 포함한 값이다.
    • 3번: MAX와 MIN 결과가 서로 다르면 두 행이 출력된다.
    • 4번: 집계 결과가 존재하므로 NULL이 아니다.

    보충 개념 UNION은 중복을 제거한 합집합이다. UNION ALL은 중복을 제거하지 않고 모든 결과를 그대로 합친다.

  35. 문제 35

    4지선다

    다음 중 ROLLUP(A, B)와 다른 결과를 생성하는 것은?

    • 1.GROUP BY ROLLUP(A, B)
    • 2.GROUP BY GROUPING SETS((A, B), (A), ())
    • 3.GROUP BY ROLLUP((A, B))
    • 4.GROUP BY A, B UNION ALL GROUP BY A UNION ALL GROUP BY ()
    정답·해설 보기

    정답

    3. GROUP BY ROLLUP((A, B))

    해설

    정답: 3. ROLLUP((A, B))는 A와 B를 하나의 묶음으로 보아 (A, B), ()만 생성하므로 ROLLUP(A, B)와 다르다.

    오답 풀이

    • 1번: 기준 표현이다.
    • 2번: ROLLUP(A, B)와 같은 그룹 집합이다.
    • 3번: 중첩 괄호로 A,B를 하나의 단위로 처리하여 (A) 소계가 빠진다.
    • 4번: ROLLUP(A, B)의 결과 집합을 UNION ALL로 표현한 형태이다.

    보충 개념 ROLLUP(A, B)는 (A,B), (A), ()를 생성한다. ROLLUP((A,B))는 복합 컬럼 묶음으로 처리되어 (A,B), ()만 생성한다.

  36. 문제 36

    4지선다

    NULL을 포함한 컬럼에 대한 AVG 계산 설명으로 가장 적절한 것은?

    • 1.AVG(컬럼)과 AVG(NVL(컬럼, 0))은 항상 같다.
    • 2.AVG(컬럼)은 NULL을 제외하고 평균을 계산한다.
    • 3.AVG(NVL(컬럼, 0))은 NULL을 제외하고 평균을 계산한다.
    • 4.AVG(컬럼)은 NULL이 하나라도 있으면 항상 NULL을 반환한다.
    정답·해설 보기

    정답

    2. AVG(컬럼)은 NULL을 제외하고 평균을 계산한다.

    해설

    정답: 2. AVG(컬럼)은 NULL을 제외하고 평균을 계산한다.

    오답 풀이

    • 1번: AVG(NVL(컬럼,0))은 NULL을 0으로 포함해 평균을 내므로 AVG(컬럼)과 달라질 수 있다.
    • 2번: AVG의 NULL 처리 방식으로 옳다.
    • 3번: NVL로 NULL을 0으로 바꾸면 0도 평균 계산에 포함된다.
    • 4번: NULL이 있어도 NULL이 아닌 값이 있으면 평균을 계산한다.

    보충 개념 집계 함수는 대부분 NULL을 제외한다. 그러나 NVL로 NULL을 0으로 바꾸면 평균의 분모가 달라져 결과가 달라질 수 있다.

  37. 문제 37

    4지선다

    NATURAL JOIN에 대한 설명으로 적절하지 않은 것은?

    • 1.동일한 이름의 컬럼을 자동으로 조인 조건으로 사용한다.
    • 2.동일 이름 컬럼은 결과에서 하나만 표시될 수 있다.
    • 3.NATURAL JOIN 구문에서는 USING이나 ON 절을 함께 사용할 수 있다.
    • 4.의도하지 않은 동일 이름 컬럼이 있으면 예상과 다른 결과가 나올 수 있다.
    정답·해설 보기

    정답

    3. NATURAL JOIN 구문에서는 USING이나 ON 절을 함께 사용할 수 있다.

    해설

    정답: 3. NATURAL JOIN은 조인 컬럼을 자동으로 결정하므로 ON이나 USING 절을 함께 사용할 수 없다.

    오답 풀이

    • 1번: NATURAL JOIN의 특징이다.
    • 2번: 동일 이름 컬럼은 하나로 표시될 수 있다.
    • 3번: NATURAL JOIN과 ON/USING을 함께 사용할 수 있다는 설명은 틀리다.
    • 4번: 동일 이름 컬럼이 의도치 않게 조인 조건이 될 수 있다.

    보충 개념 NATURAL JOIN은 편리하지만 조인 조건이 명시적이지 않아 실무에서는 주의가 필요하다. 명확한 조건이 필요하면 ON 또는 USING을 사용하는 것이 좋다.

  38. 문제 38

    4지선다

    제약조건에 대한 설명으로 적절하지 않은 것은?

    • 1.고유키에는 DBMS에 따라 NULL이 허용될 수 있다.
    • 2.CHECK 제약조건은 조건을 만족하지 않는 값을 제한하는 데 사용된다.
    • 3.하나의 테이블에는 기본키 제약조건을 두 개 이상 만들 수 있다.
    • 4.DEFAULT는 명시 값이 없을 때 기본값을 입력하는 데 사용된다.
    정답·해설 보기

    정답

    3. 하나의 테이블에는 기본키 제약조건을 두 개 이상 만들 수 있다.

    해설

    정답: 3. 하나의 테이블에는 기본키 제약조건을 하나만 지정할 수 있다.

    오답 풀이

    • 1번: 고유키의 NULL 처리 방식은 DBMS별로 차이가 있을 수 있다.
    • 2번: CHECK는 값의 조건을 제한하는 제약조건이다.
    • 3번: 테이블당 기본키 제약조건은 하나만 만들 수 있다.
    • 4번: DEFAULT는 값이 생략될 때 기본값을 제공한다.

    보충 개념 기본키는 테이블의 각 행을 대표하는 식별 기준이다. 여러 컬럼을 묶어 하나의 복합 기본키를 만들 수는 있지만 기본키 제약조건 자체는 테이블당 하나이다.

  39. 문제 39

    4지선다

    가능한 모든 조합의 소계와 총계를 생성하는 GROUP BY 확장 기능은?

    • 1.ROLLUP
    • 2.GROUPING SETS
    • 3.CUBE
    • 4.GROUPING
    정답·해설 보기

    정답

    3. CUBE

    해설

    정답: 3. CUBE는 지정된 컬럼들의 모든 가능한 조합에 대한 소계를 생성한다.

    오답 풀이

    • 1번: ROLLUP은 계층적 소계를 생성한다.
    • 2번: GROUPING SETS는 지정된 그룹 집합만 생성한다.
    • 3번: CUBE는 모든 조합을 생성한다.
    • 4번: GROUPING은 소계 행 여부를 판별하는 함수이다.

    보충 개념 CUBE(A, B)는 (A,B), (A), (B), () 그룹을 생성한다. ROLLUP(A,B)는 (A,B), (A), ()만 생성한다.

  40. 문제 40

    4지선다

    다음 조건을 적용했을 때 조회되는 COL 값으로 가장 적절한 것은?

    <데이터>

    COL
    NULL
    1
    2
    3
    4
    SQL
    SELECT COL FROM T WHERE NOT (COL <= 2);
    • 1.NULL, 3, 4
    • 2.1, 2
    • 3.3, 4
    • 4.NULL, 1, 2
    정답·해설 보기

    정답

    3. 3, 4

    해설

    정답: 3. COL이 3 또는 4이면 COL <= 2가 FALSE이고 NOT(FALSE)는 TRUE가 된다. NULL은 비교 결과가 UNKNOWN이므로 NOT을 적용해도 UNKNOWN이며 조회되지 않는다.

    오답 풀이

    • 1번: NULL은 조건 결과가 TRUE가 아니므로 포함되지 않는다.
    • 2번: 1, 2는 COL <= 2가 TRUE이고 NOT 처리 후 FALSE가 된다.
    • 3번: 3, 4만 조회된다.
    • 4번: NULL, 1, 2는 조건을 만족하지 않는다.

    보충 개념 SQL WHERE 절은 TRUE인 행만 반환한다. FALSE뿐 아니라 UNKNOWN도 결과에서 제외된다.

  41. 문제 41

    4지선다

    다음 중 조인 결과가 다른 것으로 가장 적절한 것은?

    • 1.INNER JOIN
    • 2.동등 조인
    • 3.JOIN ... ON
    • 4.CROSS JOIN
    정답·해설 보기

    정답

    4. CROSS JOIN

    해설

    정답: 4. CROSS JOIN은 조인 조건 없이 두 테이블의 모든 조합을 생성하므로 일반적인 동등 조인이나 INNER JOIN과 결과가 다르다.

    오답 풀이

    • 1번: INNER JOIN은 조건을 만족하는 행만 결합한다.
    • 2번: 동등 조인은 같은 값을 기준으로 조인하는 방식이다.
    • 3번: JOIN ... ON은 명시적 조인 조건을 작성하는 방식이다.
    • 4번: CROSS JOIN은 카테시안 곱을 생성한다.

    보충 개념 CROSS JOIN은 두 테이블의 행 수를 곱한 만큼 결과가 생성된다. 조인 조건 누락으로 의도치 않은 카테시안 곱이 발생할 수 있다.

  42. 문제 42

    4지선다

    제품, 생산제품, 생산라인 엔터티가 있을 때 제품명과 생산라인명을 올바르게 조회하기 위한 조인 경로로 가장 적절한 것은?

    • 1.제품 → 생산제품 → 생산라인
    • 2.제품 → 생산라인
    • 3.생산제품 → 제품을 거치지 않고 생산라인만 조회
    • 4.제품과 생산라인을 조건 없이 CROSS JOIN
    정답·해설 보기

    정답

    1. 제품 → 생산제품 → 생산라인

    해설

    정답: 1. 제품과 생산라인의 관계는 생산제품 엔터티를 통해 표현되므로 제품 → 생산제품 → 생산라인 경로로 조인해야 한다.

    오답 풀이

    • 1번: 관계 엔터티를 거치는 올바른 조인 경로이다.
    • 2번: 제품과 생산라인을 직접 조인하면 관계 조건이 누락될 수 있다.
    • 3번: 제품 정보를 함께 조회할 수 없다.
    • 4번: CROSS JOIN은 모든 조합을 만들어 의미 없는 결과가 발생할 수 있다.

    보충 개념 M:N 관계를 해소한 모델에서는 교차 엔터티가 실제 관계 정보를 가진다. 조회 시에도 관계 엔터티를 기준으로 조인해야 정확한 결과를 얻을 수 있다.

  43. 문제 43

    4지선다

    다음 중 NULL 관련 함수의 설명으로 적절하지 않은 것은?

    • 1.NVL(expr1, expr2)는 expr1이 NULL이면 expr2를 반환한다.
    • 2.NVL2(expr1, expr2, expr3)는 expr1이 NULL이 아니면 expr2, NULL이면 expr3을 반환한다.
    • 3.NULLIF(expr1, expr2)는 두 값이 같으면 NULL을 반환한다.
    • 4.COALESCE(expr1, expr2, ...)는 모든 인자를 더한 합계를 반환한다.
    정답·해설 보기

    정답

    4. COALESCE(expr1, expr2, ...)는 모든 인자를 더한 합계를 반환한다.

    해설

    정답: 4. COALESCE는 모든 인자를 더하는 함수가 아니라 첫 번째 NULL이 아닌 값을 반환하는 함수이다.

    오답 풀이

    • 1번: NVL의 설명이다.
    • 2번: NVL2의 설명이다.
    • 3번: NULLIF의 설명이다.
    • 4번: COALESCE에 대한 설명이 틀렸다.

    보충 개념 NULL 처리 함수는 시험에서 자주 계산 문제로 출제된다. NVL, NVL2, NULLIF, COALESCE의 반환 규칙을 구분해야 한다.

  44. 문제 44

    4지선다

    NULL이 포함된 컬럼에 대해 결과가 달라질 수 있는 집계식 조합으로 가장 적절한 것은?

    • 1.COUNT(*)와 COUNT(1)
    • 2.MAX(COL)와 MAX(COL)
    • 3.SUM(COL)와 SUM(COL)
    • 4.AVG(COL)와 AVG(NVL(COL, 0))
    정답·해설 보기

    정답

    4. AVG(COL)와 AVG(NVL(COL, 0))

    해설

    정답: 4. AVG(COL)은 NULL을 제외하지만 AVG(NVL(COL,0))은 NULL을 0으로 바꿔 평균에 포함하므로 결과가 달라질 수 있다.

    오답 풀이

    • 1번: 둘 다 전체 행 수를 세는 경우가 일반적이다.
    • 2번: 같은 표현식이다.
    • 3번: 같은 표현식이다.
    • 4번: NULL 처리 방식이 달라 평균 결과가 달라질 수 있다.

    보충 개념 AVG는 NULL을 제외하고 평균을 계산한다. NULL을 0으로 대체하면 분자와 분모 모두 영향을 받을 수 있다.

  45. 문제 45

    4지선다

    SELECT 결과에서 행의 중복을 제거하는 키워드로 알맞은 것은?

    • 1.UNIQUE
    • 2.DISTINCT
    • 3.ONLY
    • 4.EXCEPT
    정답·해설 보기

    정답

    2. DISTINCT

    해설

    정답: 2. DISTINCT는 SELECT 결과에서 중복 행을 제거할 때 사용한다.

    오답 풀이

    • 1번: UNIQUE는 제약조건이나 인덱스에서 주로 사용된다.
    • 2번: SELECT 중복 제거 키워드이다.
    • 3번: ONLY는 행 제한 구문에서 사용될 수 있다.
    • 4번: EXCEPT는 차집합 연산이다.

    보충 개념 DISTINCT는 SELECT 절의 전체 결과 행 기준으로 중복을 제거한다. 여러 컬럼을 함께 조회하면 컬럼 조합 전체가 중복 판단 기준이 된다.

  46. 문제 46

    4지선다

    MERGE 문에 대한 설명으로 가장 적절한 것은?

    • 1.MERGE는 조회 전용 명령어이다.
    • 2.MERGE는 조건에 따라 UPDATE와 INSERT를 수행할 수 있다.
    • 3.MERGE는 COMMIT과 ROLLBACK만 수행한다.
    • 4.MERGE는 테이블 구조만 변경한다.
    정답·해설 보기

    정답

    2. MERGE는 조건에 따라 UPDATE와 INSERT를 수행할 수 있다.

    해설

    정답: 2. MERGE는 대상 테이블과 원본 데이터를 비교하여 매칭되면 UPDATE, 매칭되지 않으면 INSERT 등을 수행할 수 있다.

    오답 풀이

    • 1번: MERGE는 조회 전용이 아니라 데이터 변경 명령이다.
    • 2번: MERGE의 핵심 기능이다.
    • 3번: COMMIT, ROLLBACK은 TCL이다.
    • 4번: 테이블 구조 변경은 ALTER 같은 DDL의 역할이다.

    보충 개념 MERGE는 UPSERT 처리에 자주 사용된다. USING, ON, WHEN MATCHED, WHEN NOT MATCHED 절의 역할을 구분해야 한다.

  47. 문제 47

    4지선다

    다음 날짜 형식 문자열로 가장 적절한 것은?

    <조건> 연월일시분초를 20250101143059와 같이 출력하려고 한다.

    • 1.YYYYMMDDHH24MISS
    • 2.YYYY-MM-DD HH24:MI:SS
    • 3.YY/MM/DD HH:MI
    • 4.YYYYDDMMHHMISS
    정답·해설 보기

    정답

    1. YYYYMMDDHH24MISS

    해설

    정답: 1. YYYYMMDDHH24MISS는 연도 4자리, 월 2자리, 일 2자리, 24시간제 시, 분, 초를 공백 없이 표현한다.

    오답 풀이

    • 1번: 조건의 출력 형식에 맞다.
    • 2번: 구분자와 공백이 포함된다.
    • 3번: 연도가 2자리이고 초가 없다.
    • 4번: 월과 일이 뒤바뀌어 있다.

    보충 개념 Oracle 날짜 포맷에서 YYYY는 4자리 연도, MM은 월, DD는 일, HH24는 24시간제 시, MI는 분, SS는 초를 의미한다.

  48. 문제 48

    4지선다

    계층형 쿼리에서 하위 방향으로 사원 정보를 조회하려고 한다. PRIOR가 들어갈 위치로 가장 적절한 것은?

    SQL
    SELECT EMPNO, MGR FROM EMP START WITH MGR IS NULL CONNECT BY () EMPNO = () MGR;
    • 1.EMPNO 앞
    • 2.MGR 앞
    • 3.START WITH 앞
    • 4.SELECT 앞
    정답·해설 보기

    정답

    1. EMPNO 앞

    해설

    정답: 1. 부모 행의 EMPNO가 자식 행의 MGR과 같아야 하므로 CONNECT BY PRIOR EMPNO = MGR 형태가 적절하다.

    오답 풀이

    • 1번: EMPNO 앞에 PRIOR가 들어가면 부모에서 자식 방향 탐색이 된다.
    • 2번: MGR 앞에 PRIOR가 들어가면 자식에서 부모 방향 탐색이 될 수 있다.
    • 3번: START WITH 앞에 PRIOR를 두지 않는다.
    • 4번: SELECT 앞에 PRIOR를 두지 않는다.

    보충 개념 계층형 질의에서 PRIOR는 이전 단계의 행을 의미한다. PRIOR가 붙는 컬럼에 따라 탐색 방향이 달라진다.

  49. 문제 49

    4지선다

    부서 테이블의 1행을 삭제할 때, 이를 참조하는 사원 테이블의 행도 함께 삭제되도록 하는 외래키 표현으로 가장 적절한 것은?

    • 1.FOREIGN KEY (부서ID) REFERENCES 부서(부서ID) ON DELETE RESTRICT
    • 2.부서 테이블이 사원 테이블을 REFERENCES 하고 ON DELETE CASCADE를 지정한다.
    • 3.사원 테이블의 부서ID가 부서 테이블의 부서ID를 REFERENCES 하고 ON DELETE CASCADE를 지정한다.
    • 4.FOREIGN KEY (부서ID) REFERENCES 부서(부서ID) ON DELETE SET NULL
    정답·해설 보기

    정답

    3. 사원 테이블의 부서ID가 부서 테이블의 부서ID를 REFERENCES 하고 ON DELETE CASCADE를 지정한다.

    해설

    정답: 3. 자식 테이블인 사원 테이블의 외래키가 부모 테이블인 부서 테이블을 참조하고 ON DELETE CASCADE를 지정해야 부모 삭제 시 자식 행도 삭제된다.

    오답 풀이

    • 1번: RESTRICT는 자식 행이 있으면 부모 삭제를 제한한다.
    • 2번: 참조 방향이 반대이다.
    • 3번: 자식이 부모를 참조하고 CASCADE를 지정하는 올바른 방식이다.
    • 4번: SET NULL은 자식 행을 삭제하지 않고 외래키 값을 NULL로 만든다.

    보충 개념 외래키는 자식 테이블에 정의하며 부모 테이블의 기본키 또는 고유키를 참조한다. ON DELETE CASCADE는 부모 삭제 시 자식 행 삭제를 전파한다.

  50. 문제 50

    4지선다

    아래 보기 중 올바르지 않은 것은?

    • 1.기본키는 한 테이블에 두 개 이상 존재할 수 있다.
    • 2.기본키는 각 행을 유일하게 식별해야 한다.
    • 3.기본키는 NULL 값을 가질 수 없다.
    • 4.기본키는 하나 이상의 컬럼으로 구성될 수 있다.
    정답·해설 보기

    정답

    1. 기본키는 한 테이블에 두 개 이상 존재할 수 있다.

    해설

    정답: 1. 기본키 제약조건은 한 테이블에 하나만 존재할 수 있다.

    오답 풀이

    • 1번: 기본키는 테이블당 하나만 지정할 수 있으므로 틀린 설명이다.
    • 2번: 기본키는 각 행을 유일하게 식별해야 한다.
    • 3번: 기본키는 NULL을 허용하지 않는다.
    • 4번: 여러 컬럼으로 구성된 복합 기본키는 가능하다.

    보충 개념 기본키는 테이블의 대표 식별자이다. 기본키 제약조건은 하나지만, 그 안에 여러 컬럼을 포함하는 복합키를 만들 수 있다.

이번엔 직접 풀어보세요

타이머와 자동 채점이 켜진 실제 시험 환경으로 응시할 수 있습니다.